TaskFactory.ContinueWhenAll Method (Task, Action(Task))
Creates a continuation task that starts when a set of specified tasks has completed.
Assemblies: mscorlib (in mscorlib.dll)
System.Threading.Tasks (in System.Threading.Tasks.dll)
member ContinueWhenAll : tasks:Task * continuationAction:Action<Task> -> Task
- Type: System.Threading.Tasks.Task
The array of tasks from which to continue.
Return ValueType: System.Threading.Tasks.Task
The new continuation task.
An element in the tasks array has been disposed.
The tasks array is a null reference (Nothing in Visual Basic).
The continuationAction argument is a null reference (Nothing in Visual Basic).
The tasks array is empty or contains a null value.
The ContinueWhenAll method executes the continuationAction delegate when all tasks in the tasks array have completed, regardless of their completion status.
Exceptions thrown by tasks in the tasks array are not available to the continuation task through structured exception handling. You can determine which exceptions were thrown by examining the Task.Exception property of each task in the tasks array. To use structured exception handling to handle exceptions thrown by tasks in the tasks array, call the Task.WaitAll(Task) method.
The following example launches separate tasks that use a regular expression to count the number of words in a set of text files. The ContinueWhenAll method is used to launch a task that displays the total word count when all the antecedent tasks have completed.
The call to the continuation task's Task.Wait method does not allow it to handle exceptions thrown by the antecedent tasks, so the example examines the Task.Status property of each antecedent task to determine whether the task succeeded.