# System.Threading.Tasks

``` diff
 namespace System.Threading.Tasks {
     public class Task : IAsyncResult, IDisposable {
+        public static void WaitAll(IEnumerable<Task> tasks, CancellationToken cancellationToken = default(CancellationToken));
+        public static void WaitAll(ReadOnlySpan<Task> tasks);
+        public static Task WhenAll(ReadOnlySpan<Task> tasks);
+        public static Task<TResult[]> WhenAll<TResult>(ReadOnlySpan<Task<TResult>> tasks);
+        public static Task<Task> WhenAny(ReadOnlySpan<Task> tasks);
+        public static Task<Task<TResult>> WhenAny<TResult>(ReadOnlySpan<Task<TResult>> tasks);
+        public static IAsyncEnumerable<Task> WhenEach(IEnumerable<Task> tasks);
+        public static IAsyncEnumerable<Task> WhenEach(ReadOnlySpan<Task> tasks);
+        public static IAsyncEnumerable<Task> WhenEach(params Task[] tasks);
+        public static IAsyncEnumerable<Task<TResult>> WhenEach<TResult>(IEnumerable<Task<TResult>> tasks);
+        public static IAsyncEnumerable<Task<TResult>> WhenEach<TResult>(ReadOnlySpan<Task<TResult>> tasks);
+        public static IAsyncEnumerable<Task<TResult>> WhenEach<TResult>(params Task<TResult>[] tasks);
     }
 }
```

