TaskFactory::ContinueWhenAll Method (array<Task^>^, Action<array<Task^>^>^, CancellationToken)
Creates a continuation task that starts when a set of specified tasks has completed.
Assembly: mscorlib (in mscorlib.dll)
public: Task^ ContinueWhenAll( array<Task^>^ tasks, Action<array<Task^>^>^ continuationAction, CancellationToken cancellationToken )
Parameters
- tasks
-
Type:
array<System.Threading.Tasks::Task^>^
The array of tasks from which to continue.
- continuationAction
-
Type:
System::Action<array<Task^>^>^
The action delegate to execute when all tasks in the tasks array have completed.
- cancellationToken
-
Type:
System.Threading::CancellationToken
The cancellation token to assign to the new continuation task.
| Exception | Condition |
|---|---|
| ObjectDisposedException | An element in the tasks array has been disposed. -or- The CancellationTokenSource that created cancellationToken has already been disposed. |
| ArgumentNullException | The tasks array is null. -or- The continuationAction argument is null. |
| ArgumentException | The tasks array is empty or contains a null value. |
The ContinueWhenAll(array<Task^>^, Action<array<Task^>^>^, CancellationToken) method executes the continuationAction delegate when all tasks in the tasks array have completed, regardless of their completion status.
The following example creates a cancellation token, which it passes to separate tasks that use a regular expression to count the number of words in a set of text files. The cancellation token is set if a file cannot be found. The ContinueWhenAll method is used to launch a task that displays the total word count when all the antecedent tasks have completed. If the cancellation token is set, which indicates that one or more tasks have been cancelled, it handles the AggregateException exception and displays an error message.
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 5.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1