# System.Threading.Tasks ``` diff +namespace System.Threading.Tasks { + public class ConcurrentExclusiveSchedulerPair { + public ConcurrentExclusiveSchedulerPair(); + public ConcurrentExclusiveSchedulerPair(TaskScheduler taskScheduler); + public ConcurrentExclusiveSchedulerPair(TaskScheduler taskScheduler, int maxConcurrencyLevel); + public ConcurrentExclusiveSchedulerPair(TaskScheduler taskScheduler, int maxConcurrencyLevel, int maxItemsPerTask); + public Task Completion { get; } + public TaskScheduler ConcurrentScheduler { get; } + public TaskScheduler ExclusiveScheduler { get; } + public void Complete(); + } + public static class Parallel { + public static ParallelLoopResult For(int fromInclusive, int toExclusive, Action body); + public static ParallelLoopResult For(int fromInclusive, int toExclusive, Action body); + public static ParallelLoopResult For(int fromInclusive, int toExclusive, ParallelOptions parallelOptions, Action body); + public static ParallelLoopResult For(int fromInclusive, int toExclusive, ParallelOptions parallelOptions, Action body); + public static ParallelLoopResult For(long fromInclusive, long toExclusive, Action body); + public static ParallelLoopResult For(long fromInclusive, long toExclusive, Action body); + public static ParallelLoopResult For(long fromInclusive, long toExclusive, ParallelOptions parallelOptions, Action body); + public static ParallelLoopResult For(long fromInclusive, long toExclusive, ParallelOptions parallelOptions, Action body); + public static ParallelLoopResult For(int fromInclusive, int toExclusive, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult For(int fromInclusive, int toExclusive, ParallelOptions parallelOptions, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult For(long fromInclusive, long toExclusive, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult For(long fromInclusive, long toExclusive, ParallelOptions parallelOptions, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult ForEach(OrderablePartitioner source, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult ForEach(OrderablePartitioner source, ParallelOptions parallelOptions, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult ForEach(Partitioner source, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult ForEach(Partitioner source, ParallelOptions parallelOptions, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult ForEach(IEnumerable source, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult ForEach(IEnumerable source, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult ForEach(IEnumerable source, ParallelOptions parallelOptions, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult ForEach(IEnumerable source, ParallelOptions parallelOptions, Func localInit, Func body, Action localFinally); + public static ParallelLoopResult ForEach(OrderablePartitioner source, Action body); + public static ParallelLoopResult ForEach(OrderablePartitioner source, ParallelOptions parallelOptions, Action body); + public static ParallelLoopResult ForEach(Partitioner source, Action body); + public static ParallelLoopResult ForEach(Partitioner source, Action body); + public static ParallelLoopResult ForEach(Partitioner source, ParallelOptions parallelOptions, Action body); + public static ParallelLoopResult ForEach(Partitioner source, ParallelOptions parallelOptions, Action body); + public static ParallelLoopResult ForEach(IEnumerable source, Action body); + public static ParallelLoopResult ForEach(IEnumerable source, Action body); + public static ParallelLoopResult ForEach(IEnumerable source, Action body); + public static ParallelLoopResult ForEach(IEnumerable source, ParallelOptions parallelOptions, Action body); + public static ParallelLoopResult ForEach(IEnumerable source, ParallelOptions parallelOptions, Action body); + public static ParallelLoopResult ForEach(IEnumerable source, ParallelOptions parallelOptions, Action body); + public static void Invoke(params Action[] actions); + public static void Invoke(ParallelOptions parallelOptions, params Action[] actions); + } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] + public struct ParallelLoopResult { + public bool IsCompleted { get; } + public Nullable LowestBreakIteration { get; } + } + public class ParallelLoopState { + public bool IsExceptional { get; } + public bool IsStopped { get; } + public Nullable LowestBreakIteration { get; } + public bool ShouldExitCurrentIteration { get; } + public void Break(); + public void Stop(); + } + public class ParallelOptions { + public ParallelOptions(); + public CancellationToken CancellationToken { get; set; } + public int MaxDegreeOfParallelism { get; set; } + public TaskScheduler TaskScheduler { get; set; } + } + public class Task : IAsyncResult { + public Task(Action action); + public Task(Action action, CancellationToken cancellationToken); + public Task(Action action, CancellationToken cancellationToken, TaskCreationOptions creationOptions); + public Task(Action action, TaskCreationOptions creationOptions); + public Task(Action action, object state); + public Task(Action action, object state, CancellationToken cancellationToken); + public Task(Action action, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions); + public Task(Action action, object state, TaskCreationOptions creationOptions); + public object AsyncState { get; } + public static Task CompletedTask { get; } + public TaskCreationOptions CreationOptions { get; } + public static Nullable CurrentId { get; } + public AggregateException Exception { get; } + public static TaskFactory Factory { get; } + public int Id { get; } + public bool IsCanceled { get; } + public bool IsCompleted { get; } + public bool IsFaulted { get; } + public TaskStatus Status { get; } + WaitHandle System.IAsyncResult.AsyncWaitHandle { get; } + bool System.IAsyncResult.CompletedSynchronously { get; } + public ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext); + public Task ContinueWith(Action continuationAction, object state); + public Task ContinueWith(Action continuationAction, object state, CancellationToken cancellationToken); + public Task ContinueWith(Action continuationAction, object state, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWith(Action continuationAction, object state, TaskContinuationOptions continuationOptions); + public Task ContinueWith(Action continuationAction, object state, TaskScheduler scheduler); + public Task ContinueWith(Action continuationAction); + public Task ContinueWith(Action continuationAction, CancellationToken cancellationToken); + public Task ContinueWith(Action continuationAction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWith(Action continuationAction, TaskContinuationOptions continuationOptions); + public Task ContinueWith(Action continuationAction, TaskScheduler scheduler); + public Task ContinueWith(Func continuationFunction, object state); + public Task ContinueWith(Func continuationFunction, object state, CancellationToken cancellationToken); + public Task ContinueWith(Func continuationFunction, object state, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWith(Func continuationFunction, object state, TaskContinuationOptions continuationOptions); + public Task ContinueWith(Func continuationFunction, object state, TaskScheduler scheduler); + public Task ContinueWith(Func continuationFunction); + public Task ContinueWith(Func continuationFunction, CancellationToken cancellationToken); + public Task ContinueWith(Func continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWith(Func continuationFunction, TaskContinuationOptions continuationOptions); + public Task ContinueWith(Func continuationFunction, TaskScheduler scheduler); + public static Task Delay(int millisecondsDelay); + public static Task Delay(int millisecondsDelay, CancellationToken cancellationToken); + public static Task Delay(TimeSpan delay); + public static Task Delay(TimeSpan delay, CancellationToken cancellationToken); + public void Dispose(); + protected virtual void Dispose(bool disposing); + public static Task FromCanceled(CancellationToken cancellationToken); + public static Task FromCanceled(CancellationToken cancellationToken); + public static Task FromException(Exception exception); + public static Task FromException(Exception exception); + public static Task FromResult(TResult result); + public TaskAwaiter GetAwaiter(); + public static Task Run(Action action); + public static Task Run(Action action, CancellationToken cancellationToken); + public static Task Run(Func function); + public static Task Run(Func function, CancellationToken cancellationToken); + public static Task Run(Func> function); + public static Task Run(Func> function, CancellationToken cancellationToken); + public static Task Run(Func function); + public static Task Run(Func function, CancellationToken cancellationToken); + public void RunSynchronously(); + public void RunSynchronously(TaskScheduler scheduler); + public void Start(); + public void Start(TaskScheduler scheduler); + public void Wait(); + public bool Wait(int millisecondsTimeout); + public bool Wait(int millisecondsTimeout, CancellationToken cancellationToken); + public void Wait(CancellationToken cancellationToken); + public bool Wait(TimeSpan timeout); + public static void WaitAll(params Task[] tasks); + public static bool WaitAll(Task[] tasks, int millisecondsTimeout); + public static bool WaitAll(Task[] tasks, int millisecondsTimeout, CancellationToken cancellationToken); + public static void WaitAll(Task[] tasks, CancellationToken cancellationToken); + public static bool WaitAll(Task[] tasks, TimeSpan timeout); + public static int WaitAny(params Task[] tasks); + public static int WaitAny(Task[] tasks, int millisecondsTimeout); + public static int WaitAny(Task[] tasks, int millisecondsTimeout, CancellationToken cancellationToken); + public static int WaitAny(Task[] tasks, CancellationToken cancellationToken); + public static int WaitAny(Task[] tasks, TimeSpan timeout); + public static Task WhenAll(IEnumerable tasks); + public static Task WhenAll(params Task[] tasks); + public static Task WhenAll(IEnumerable> tasks); + public static Task WhenAll(params Task[] tasks); + public static Task WhenAny(IEnumerable tasks); + public static Task WhenAny(params Task[] tasks); + public static Task> WhenAny(IEnumerable> tasks); + public static Task> WhenAny(params Task[] tasks); + public static YieldAwaitable Yield(); + } + public class Task : Task { + public Task(Func function, object state); + public Task(Func function, object state, CancellationToken cancellationToken); + public Task(Func function, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions); + public Task(Func function, object state, TaskCreationOptions creationOptions); + public Task(Func function); + public Task(Func function, CancellationToken cancellationToken); + public Task(Func function, CancellationToken cancellationToken, TaskCreationOptions creationOptions); + public Task(Func function, TaskCreationOptions creationOptions); + public static new TaskFactory Factory { get; } + public TResult Result { get; } + public new ConfiguredTaskAwaitable ConfigureAwait(bool continueOnCapturedContext); + public Task ContinueWith(Action, object> continuationAction, object state); + public Task ContinueWith(Action, object> continuationAction, object state, CancellationToken cancellationToken); + public Task ContinueWith(Action, object> continuationAction, object state, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWith(Action, object> continuationAction, object state, TaskContinuationOptions continuationOptions); + public Task ContinueWith(Action, object> continuationAction, object state, TaskScheduler scheduler); + public Task ContinueWith(Action> continuationAction); + public Task ContinueWith(Action> continuationAction, CancellationToken cancellationToken); + public Task ContinueWith(Action> continuationAction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWith(Action> continuationAction, TaskContinuationOptions continuationOptions); + public Task ContinueWith(Action> continuationAction, TaskScheduler scheduler); + public Task ContinueWith(Func, object, TNewResult> continuationFunction, object state); + public Task ContinueWith(Func, object, TNewResult> continuationFunction, object state, CancellationToken cancellationToken); + public Task ContinueWith(Func, object, TNewResult> continuationFunction, object state, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWith(Func, object, TNewResult> continuationFunction, object state, TaskContinuationOptions continuationOptions); + public Task ContinueWith(Func, object, TNewResult> continuationFunction, object state, TaskScheduler scheduler); + public Task ContinueWith(Func, TNewResult> continuationFunction); + public Task ContinueWith(Func, TNewResult> continuationFunction, CancellationToken cancellationToken); + public Task ContinueWith(Func, TNewResult> continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWith(Func, TNewResult> continuationFunction, TaskContinuationOptions continuationOptions); + public Task ContinueWith(Func, TNewResult> continuationFunction, TaskScheduler scheduler); + public new TaskAwaiter GetAwaiter(); + } + public class TaskCanceledException : OperationCanceledException { + public TaskCanceledException(); + public TaskCanceledException(string message); + public TaskCanceledException(string message, Exception innerException); + public TaskCanceledException(Task task); + public Task Task { get; } + } + public class TaskCompletionSource { + public TaskCompletionSource(); + public TaskCompletionSource(object state); + public TaskCompletionSource(object state, TaskCreationOptions creationOptions); + public TaskCompletionSource(TaskCreationOptions creationOptions); + public Task Task { get; } + public void SetCanceled(); + public void SetException(IEnumerable exceptions); + public void SetException(Exception exception); + public void SetResult(TResult result); + public bool TrySetCanceled(); + public bool TrySetCanceled(CancellationToken cancellationToken); + public bool TrySetException(IEnumerable exceptions); + public bool TrySetException(Exception exception); + public bool TrySetResult(TResult result); + } + public enum TaskContinuationOptions { + AttachedToParent = 4, + DenyChildAttach = 8, + ExecuteSynchronously = 524288, + HideScheduler = 16, + LazyCancellation = 32, + LongRunning = 2, + None = 0, + NotOnCanceled = 262144, + NotOnFaulted = 131072, + NotOnRanToCompletion = 65536, + OnlyOnCanceled = 196608, + OnlyOnFaulted = 327680, + OnlyOnRanToCompletion = 393216, + PreferFairness = 1, + RunContinuationsAsynchronously = 64, + } + public enum TaskCreationOptions { + AttachedToParent = 4, + DenyChildAttach = 8, + HideScheduler = 16, + LongRunning = 2, + None = 0, + PreferFairness = 1, + RunContinuationsAsynchronously = 64, + } + public static class TaskExtensions { + public static Task Unwrap(this Task task); + public static Task Unwrap(this Task> task); + } + public class TaskFactory { + public TaskFactory(); + public TaskFactory(CancellationToken cancellationToken); + public TaskFactory(CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public TaskFactory(TaskCreationOptions creationOptions, TaskContinuationOptions continuationOptions); + public TaskFactory(TaskScheduler scheduler); + public CancellationToken CancellationToken { get; } + public TaskContinuationOptions ContinuationOptions { get; } + public TaskCreationOptions CreationOptions { get; } + public TaskScheduler Scheduler { get; } + public Task ContinueWhenAll(Task[] tasks, Action continuationAction); + public Task ContinueWhenAll(Task[] tasks, Action continuationAction, CancellationToken cancellationToken); + public Task ContinueWhenAll(Task[] tasks, Action continuationAction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAll(Task[] tasks, Action continuationAction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAll(Task[] tasks, Func[], TResult> continuationFunction); + public Task ContinueWhenAll(Task[] tasks, Func[], TResult> continuationFunction, CancellationToken cancellationToken); + public Task ContinueWhenAll(Task[] tasks, Func[], TResult> continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAll(Task[] tasks, Func[], TResult> continuationFunction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAll(Task[] tasks, Action[]> continuationAction); + public Task ContinueWhenAll(Task[] tasks, Action[]> continuationAction, CancellationToken cancellationToken); + public Task ContinueWhenAll(Task[] tasks, Action[]> continuationAction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAll(Task[] tasks, Action[]> continuationAction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAll(Task[] tasks, Func continuationFunction); + public Task ContinueWhenAll(Task[] tasks, Func continuationFunction, CancellationToken cancellationToken); + public Task ContinueWhenAll(Task[] tasks, Func continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAll(Task[] tasks, Func continuationFunction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAny(Task[] tasks, Action continuationAction); + public Task ContinueWhenAny(Task[] tasks, Action continuationAction, CancellationToken cancellationToken); + public Task ContinueWhenAny(Task[] tasks, Action continuationAction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAny(Task[] tasks, Action continuationAction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAny(Task[] tasks, Func, TResult> continuationFunction); + public Task ContinueWhenAny(Task[] tasks, Func, TResult> continuationFunction, CancellationToken cancellationToken); + public Task ContinueWhenAny(Task[] tasks, Func, TResult> continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAny(Task[] tasks, Func, TResult> continuationFunction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAny(Task[] tasks, Action> continuationAction); + public Task ContinueWhenAny(Task[] tasks, Action> continuationAction, CancellationToken cancellationToken); + public Task ContinueWhenAny(Task[] tasks, Action> continuationAction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAny(Task[] tasks, Action> continuationAction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAny(Task[] tasks, Func continuationFunction); + public Task ContinueWhenAny(Task[] tasks, Func continuationFunction, CancellationToken cancellationToken); + public Task ContinueWhenAny(Task[] tasks, Func continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAny(Task[] tasks, Func continuationFunction, TaskContinuationOptions continuationOptions); + public Task FromAsync(Func beginMethod, Action endMethod, object state); + public Task FromAsync(Func beginMethod, Action endMethod, object state, TaskCreationOptions creationOptions); + public Task FromAsync(IAsyncResult asyncResult, Action endMethod); + public Task FromAsync(IAsyncResult asyncResult, Action endMethod, TaskCreationOptions creationOptions); + public Task FromAsync(IAsyncResult asyncResult, Action endMethod, TaskCreationOptions creationOptions, TaskScheduler scheduler); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, TaskCreationOptions creationOptions); + public Task FromAsync(Func beginMethod, Action endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state); + public Task FromAsync(Func beginMethod, Action endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, TaskCreationOptions creationOptions); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, TArg2 arg2, object state); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, TArg2 arg2, object state, TaskCreationOptions creationOptions); + public Task FromAsync(Func beginMethod, Action endMethod, TArg1 arg1, TArg2 arg2, object state); + public Task FromAsync(Func beginMethod, Action endMethod, TArg1 arg1, TArg2 arg2, object state, TaskCreationOptions creationOptions); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, object state); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, object state, TaskCreationOptions creationOptions); + public Task FromAsync(Func beginMethod, Action endMethod, TArg1 arg1, object state); + public Task FromAsync(Func beginMethod, Action endMethod, TArg1 arg1, object state, TaskCreationOptions creationOptions); + public Task FromAsync(Func beginMethod, Func endMethod, object state); + public Task FromAsync(Func beginMethod, Func endMethod, object state, TaskCreationOptions creationOptions); + public Task FromAsync(IAsyncResult asyncResult, Func endMethod); + public Task FromAsync(IAsyncResult asyncResult, Func endMethod, TaskCreationOptions creationOptions); + public Task FromAsync(IAsyncResult asyncResult, Func endMethod, TaskCreationOptions creationOptions, TaskScheduler scheduler); + public Task StartNew(Action action); + public Task StartNew(Action action, CancellationToken cancellationToken); + public Task StartNew(Action action, CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskScheduler scheduler); + public Task StartNew(Action action, TaskCreationOptions creationOptions); + public Task StartNew(Action action, object state); + public Task StartNew(Action action, object state, CancellationToken cancellationToken); + public Task StartNew(Action action, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskScheduler scheduler); + public Task StartNew(Action action, object state, TaskCreationOptions creationOptions); + public Task StartNew(Func function, object state); + public Task StartNew(Func function, object state, CancellationToken cancellationToken); + public Task StartNew(Func function, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskScheduler scheduler); + public Task StartNew(Func function, object state, TaskCreationOptions creationOptions); + public Task StartNew(Func function); + public Task StartNew(Func function, CancellationToken cancellationToken); + public Task StartNew(Func function, CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskScheduler scheduler); + public Task StartNew(Func function, TaskCreationOptions creationOptions); + } + public class TaskFactory { + public TaskFactory(); + public TaskFactory(CancellationToken cancellationToken); + public TaskFactory(CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public TaskFactory(TaskCreationOptions creationOptions, TaskContinuationOptions continuationOptions); + public TaskFactory(TaskScheduler scheduler); + public CancellationToken CancellationToken { get; } + public TaskContinuationOptions ContinuationOptions { get; } + public TaskCreationOptions CreationOptions { get; } + public TaskScheduler Scheduler { get; } + public Task ContinueWhenAll(Task[] tasks, Func continuationFunction); + public Task ContinueWhenAll(Task[] tasks, Func continuationFunction, CancellationToken cancellationToken); + public Task ContinueWhenAll(Task[] tasks, Func continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAll(Task[] tasks, Func continuationFunction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAll(Task[] tasks, Func[], TResult> continuationFunction); + public Task ContinueWhenAll(Task[] tasks, Func[], TResult> continuationFunction, CancellationToken cancellationToken); + public Task ContinueWhenAll(Task[] tasks, Func[], TResult> continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAll(Task[] tasks, Func[], TResult> continuationFunction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAny(Task[] tasks, Func continuationFunction); + public Task ContinueWhenAny(Task[] tasks, Func continuationFunction, CancellationToken cancellationToken); + public Task ContinueWhenAny(Task[] tasks, Func continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAny(Task[] tasks, Func continuationFunction, TaskContinuationOptions continuationOptions); + public Task ContinueWhenAny(Task[] tasks, Func, TResult> continuationFunction); + public Task ContinueWhenAny(Task[] tasks, Func, TResult> continuationFunction, CancellationToken cancellationToken); + public Task ContinueWhenAny(Task[] tasks, Func, TResult> continuationFunction, CancellationToken cancellationToken, TaskContinuationOptions continuationOptions, TaskScheduler scheduler); + public Task ContinueWhenAny(Task[] tasks, Func, TResult> continuationFunction, TaskContinuationOptions continuationOptions); + public Task FromAsync(Func beginMethod, Func endMethod, object state); + public Task FromAsync(Func beginMethod, Func endMethod, object state, TaskCreationOptions creationOptions); + public Task FromAsync(IAsyncResult asyncResult, Func endMethod); + public Task FromAsync(IAsyncResult asyncResult, Func endMethod, TaskCreationOptions creationOptions); + public Task FromAsync(IAsyncResult asyncResult, Func endMethod, TaskCreationOptions creationOptions, TaskScheduler scheduler); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, object state, TaskCreationOptions creationOptions); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, TArg2 arg2, object state); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, TArg2 arg2, object state, TaskCreationOptions creationOptions); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, object state); + public Task FromAsync(Func beginMethod, Func endMethod, TArg1 arg1, object state, TaskCreationOptions creationOptions); + public Task StartNew(Func function, object state); + public Task StartNew(Func function, object state, CancellationToken cancellationToken); + public Task StartNew(Func function, object state, CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskScheduler scheduler); + public Task StartNew(Func function, object state, TaskCreationOptions creationOptions); + public Task StartNew(Func function); + public Task StartNew(Func function, CancellationToken cancellationToken); + public Task StartNew(Func function, CancellationToken cancellationToken, TaskCreationOptions creationOptions, TaskScheduler scheduler); + public Task StartNew(Func function, TaskCreationOptions creationOptions); + } + public abstract class TaskScheduler { + protected TaskScheduler(); + public static TaskScheduler Current { get; } + public static TaskScheduler Default { get; } + public int Id { get; } + public virtual int MaximumConcurrencyLevel { get; } + public static event EventHandler UnobservedTaskException; + public static TaskScheduler FromCurrentSynchronizationContext(); + protected abstract IEnumerable GetScheduledTasks(); + protected internal abstract void QueueTask(Task task); + protected internal virtual bool TryDequeue(Task task); + protected bool TryExecuteTask(Task task); + protected abstract bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued); + } + public class TaskSchedulerException : Exception { + public TaskSchedulerException(); + public TaskSchedulerException(Exception innerException); + public TaskSchedulerException(string message); + public TaskSchedulerException(string message, Exception innerException); + } + public enum TaskStatus { + Canceled = 6, + Created = 0, + Faulted = 7, + RanToCompletion = 5, + Running = 3, + WaitingForActivation = 1, + WaitingForChildrenToComplete = 4, + WaitingToRun = 2, + } + public class UnobservedTaskExceptionEventArgs : EventArgs { + public UnobservedTaskExceptionEventArgs(AggregateException exception); + public AggregateException Exception { get; } + public bool Observed { get; } + public void SetObserved(); + } + public struct ValueTask : IEquatable> { + public ValueTask(Task task); + public ValueTask(TResult result); + public bool IsCanceled { get; } + public bool IsCompleted { get; } + public bool IsCompletedSuccessfully { get; } + public bool IsFaulted { get; } + public TResult Result { get; } + public Task AsTask(); + public ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext); + public override bool Equals(object obj); + public bool Equals(ValueTask other); + public ValueTaskAwaiter GetAwaiter(); + public override int GetHashCode(); + public static bool operator ==(ValueTask left, ValueTask right); + public static bool operator !=(ValueTask left, ValueTask right); + public override string ToString(); + } +} ```