Task.WaitAll Method (Task[], Int32, CancellationToken)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Waits for all of the provided Task objects to complete execution within a specified number of milliseconds or until the wait is cancelled.

Namespace:   System.Threading.Tasks
Assembly:  mscorlib (in mscorlib.dll)

public static bool WaitAll(
	Task[] tasks,
	int millisecondsTimeout,
	CancellationToken cancellationToken


Type: System.Threading.Tasks.Task[]

An array of Task instances on which to wait.

Type: System.Int32

The number of milliseconds to wait, or Infinite (-1) to wait indefinitely.

Type: System.Threading.CancellationToken

A CancellationToken to observe while waiting for the tasks to complete.

Return Value

Type: System.Boolean

true if all of the Task instances completed execution within the allotted time; otherwise, false.

Exception Condition

One or more of the Task objects in tasks has been disposed.


The tasks argument is null.


At least one of the Task instances was canceled. If a task was canceled, the AggregateException contains an OperationCanceledException in its InnerExceptions collection.


An exception was thrown during the execution of at least one of the Task instances.


millisecondsTimeout is a negative number other than -1, which represents an infinite time-out.


The tasks argument contains a null element.


The tasks argument is an empty array.


The cancellationToken was canceled.

The cancellationToken argument is used to cancel the wait operation. Cancellation of the tasks is a distinct operation, and is signaled by the AggregateException noted above.

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Available since 5.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Return to top