This documentation is archived and is not being maintained.

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

Waits for all of the provided Task objects to complete execution.

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.


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 -or- an exception was thrown during the execution of at least one of the Task instances. If a task was canceled, the AggregateException contains an OperationCanceledException in its InnerExceptions collection.


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


The tasks argument contains a null element.


The cancellationToken was canceled.

The cancellationToken argument is used to cancel the wait operation. If it is canceled, the Wait returns false (False in Visual Basic). Cancellation of the tasks is a distinct operation, and is signaled by the AggregateException as noted above.

.NET Framework

Supported in: 4

.NET Framework Client Profile

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.