TaskFactory.ContinueWhenAll Method (Task[], Action<Task[]>)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Creates a continuation Task that will be started upon the completion of a set of provided Tasks.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- tasks
- Type:
System.Threading.Tasks.Task
[]
The array of tasks from which to continue.
- continuationAction
- Type: System.Action<
Task
[]>
The action delegate to execute when all tasks in the tasks array have completed.
| Exception | Condition |
|---|---|
| ObjectDisposedException | The exception that is thrown when one of the elements in the tasks array has been disposed. |
| ArgumentNullException | The exception that is thrown when the tasks array is null. -or- The exception that is thrown when the continuationAction argument is null. |
| ArgumentException | The exception that is thrown when the tasks array contains a null value. -or- The exception that is thrown when the tasks array is empty. |
This example demonstrates using ContinueWhenAll() to perform some continuation a set of previously started Tasks has completed.
// C#
// Create and start some tasks
var taskQueue = new Queue<Task>();
for (int i = 0; i < 10; i++)
{
taskQueue.Enqueue(Task.Factory.StartNew(() =>
{
// Do work.
}));
}
// Perform some work with the tasks when they complete.
Task.Factory.ContinueWhenAll(taskQueue.ToArray(), completedTasks =>
{
// Do continuation work.
});
' Visual Basic
' Create and start some tasks
Dim taskQueue As New Queue(Of Task)()
For i As Integer = 0 To 9
taskQueue.Add(Task.Factory.StartNew(Sub()
' Do work.
End Sub))
Next
' Perform some work with the tasks when they complete.
Task.Factory.ContinueWhenAll(taskQueue.ToArray(), Sub(completedTasks)
' Do continuation work.
End Sub)