TaskFactory.ContinueWhenAny Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Creates a continuation Task that will be started upon the completion of any Task in the provided set.
Overloads
ContinueWhenAny(Task[], Action<Task>, TaskContinuationOptions)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task that will be started upon the completion of any Task in the provided set.
public:
System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<System::Threading::Tasks::Task ^> ^ continuationAction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task ContinueWhenAny (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task
Public Function ContinueWhenAny (tasks As Task(), continuationAction As Action(Of Task), continuationOptions As TaskContinuationOptions) As Task
Parameters
- tasks
- Task[]
The array of tasks from which to continue when one task completes.
The action delegate to execute when one task in the tasks
array completes.
- continuationOptions
- TaskContinuationOptions
The TaskContinuationOptions value that controls the behavior of the created continuation Task.
Returns
The new continuation Task.
Exceptions
One of the elements in the tasks
array has been disposed.
continuationOptions
specifies an invalid TaskContinuationOptions value.
Remarks
The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAny
.
See also
Applies to
ContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task that will be started upon the completion of any Task in the provided set.
public:
System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<System::Threading::Tasks::Task ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task ContinueWhenAny (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task
Public Function ContinueWhenAny (tasks As Task(), continuationAction As Action(Of Task), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task
Parameters
- tasks
- Task[]
The array of tasks from which to continue when one task completes.
The action delegate to execute when one task in the tasks
array completes.
- cancellationToken
- CancellationToken
The CancellationToken that will be assigned to the new continuation task.
- continuationOptions
- TaskContinuationOptions
The TaskContinuationOptions value that controls the behavior of the created continuation Task.
- scheduler
- TaskScheduler
The TaskScheduler that is used to schedule the created continuation Task.
Returns
The new continuation Task.
Exceptions
The tasks
array is null
.
-or-
continuationAction
is null
.
-or-
scheduler
is null
.
continuationOptions
specifies an invalid TaskContinuationOptions value.
The provided CancellationToken has already been disposed.
Remarks
The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAny
.
See also
Applies to
ContinueWhenAny(Task[], Action<Task>)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task that will be started upon the completion of any Task in the provided set.
public:
System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<System::Threading::Tasks::Task ^> ^ continuationAction);
public System.Threading.Tasks.Task ContinueWhenAny (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task> continuationAction);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task> -> System.Threading.Tasks.Task
Public Function ContinueWhenAny (tasks As Task(), continuationAction As Action(Of Task)) As Task
Parameters
- tasks
- Task[]
The array of tasks from which to continue when one task completes.
The action delegate to execute when one task in the tasks
array completes.
Returns
The new continuation Task.
Exceptions
One of the elements in the tasks
array has been disposed.
Examples
The following example shows how to use ContinueWhenAny
and ContinueWhenAll
:
using System;
using System.Threading;
using System.Threading.Tasks;
class ContinueWhenMultiDemo
{
// Demonstrated features:
// Task.Factory
// TaskFactory.ContinueWhenAll()
// TaskFactory.ContinueWhenAny()
// Task.Wait()
// Expected results:
// Three tasks are created in parallel.
// Each task for a different period of time prints a number and returns it.
// A ContinueWhenAny() task indicates the first of the three tasks to complete.
// A ContinueWhenAll() task sums up the results of the three tasks and prints out the total.
// Documentation:
// http://msdn.microsoft.com/library/system.threading.tasks.taskfactory_members(VS.100).aspx
static void Main()
{
// Schedule a list of tasks that return integer
Task<int>[] tasks = new Task<int>[]
{
Task<int>.Factory.StartNew(() =>
{
Thread.Sleep(500);
Console.WriteLine("Task={0}, Thread={1}, x=5", Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
return 5;
}),
Task<int>.Factory.StartNew(() =>
{
Thread.Sleep(10);
Console.WriteLine("Task={0}, Thread={1}, x=3", Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
return 3;
}),
Task<int>.Factory.StartNew(() =>
{
Thread.Sleep(200);
Console.WriteLine("Task={0}, Thread={1}, x=2", Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
return 2;
})
};
// Schedule a continuation to indicate the result of the first task to complete
Task.Factory.ContinueWhenAny(tasks, winner =>
{
// You would expect winning result = 3 on multi-core systems, because you expect
// tasks[1] to finish first.
Console.WriteLine("Task={0}, Thread={1} (ContinueWhenAny): Winning result = {2}", Task.CurrentId, Thread.CurrentThread.ManagedThreadId, winner.Result);
});
// Schedule a continuation that sums up the results of all tasks, then wait on it.
// The list of antecendent tasks is passed as an argument by the runtime.
Task.Factory.ContinueWhenAll(tasks,
(antecendents) =>
{
int sum = 0;
foreach (Task<int> task in antecendents)
{
sum += task.Result;
}
Console.WriteLine("Task={0}, Thread={1}, (ContinueWhenAll): Total={2} (expected 10)", Task.CurrentId, Thread.CurrentThread.ManagedThreadId, sum);
})
.Wait();
}
}
Imports System.Threading
Imports System.Threading.Tasks
Module ContinuationWhenMulti
' Demonstrated features:
' Task.Factory
' TaskFactory.ContinueWhenAll()
' TaskFactory.ContinueWhenAny()
' Task.Wait()
' Expected results:
' Three tasks are created in parallel.
' Each task for a different period of time prints a number and returns it.
' A ContinueWhenAny() task indicates the first of the three tasks to complete.
' A ContinueWhenAll() task sums up the results of the three tasks and prints out the total.
' Documentation:
' http://msdn.microsoft.com/library/system.threading.tasks.taskfactory_members(VS.100).aspx
Sub Main()
' Schedule a list of tasks that return integer
Dim tasks As Task(Of Integer)() = New Task(Of Integer)() {
Task(Of Integer).Factory.StartNew(Function()
Thread.Sleep(500)
Console.WriteLine("Task={0}, Thread={1}, x=5", Task.CurrentId, Thread.CurrentThread.ManagedThreadId)
Return 5
End Function),
Task(Of Integer).Factory.StartNew(Function()
Thread.Sleep(10)
Console.WriteLine("Task={0}, Thread={1}, x=3", Task.CurrentId, Thread.CurrentThread.ManagedThreadId)
Return 3
End Function),
Task(Of Integer).Factory.StartNew(Function()
Thread.Sleep(200)
Console.WriteLine("Task={0}, Thread={1}, x=2", Task.CurrentId, Thread.CurrentThread.ManagedThreadId)
Return 2
End Function)}
' Schedule a continuation to indicate the result of the first task to complete
Task.Factory.ContinueWhenAny(tasks, Sub(winner)
' You would expect winning result = 3 on multi-core systems, because you expect
' tasks[1] to finish first.
Console.WriteLine("Task={0}, Thread={1} (ContinueWhenAny): Winning result = {2}", Task.CurrentId, Thread.CurrentThread.ManagedThreadId, winner.Result)
End Sub)
' Schedule a continuation that sums up the results of all tasks, then wait on it.
' The list of antecendent tasks is passed as an argument by the runtime.
Task.Factory.ContinueWhenAll(tasks, Sub(antecendents)
Dim sum As Integer = 0
For Each task__1 As Task(Of Integer) In antecendents
sum += task__1.Result
Next
Console.WriteLine("Task={0}, Thread={1}, (ContinueWhenAll): Total={2} (expected 10)", Task.CurrentId, Thread.CurrentThread.ManagedThreadId, sum)
End Sub).Wait()
End Sub
End Module
See also
Applies to
ContinueWhenAny(Task[], Action<Task>, CancellationToken)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task that will be started upon the completion of any Task in the provided set.
public:
System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<System::Threading::Tasks::Task ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task ContinueWhenAny (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task> continuationAction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function ContinueWhenAny (tasks As Task(), continuationAction As Action(Of Task), cancellationToken As CancellationToken) As Task
Parameters
- tasks
- Task[]
The array of tasks from which to continue when one task completes.
The action delegate to execute when one task in the tasks
array completes.
- cancellationToken
- CancellationToken
The CancellationToken that will be assigned to the new continuation task.
Returns
The new continuation Task.
Exceptions
One of the elements in the tasks
array has been disposed.
-or-
cancellationToken
has already been disposed.
See also
Applies to
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, TaskContinuationOptions)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task<TResult> that will be started upon the completion of any Task in the provided set.
public:
generic <typename TAntecedentResult, typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<System::Threading::Tasks::Task<TAntecedentResult> ^, TResult> ^ continuationFunction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>, 'Result> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult), TResult), continuationOptions As TaskContinuationOptions) As Task(Of TResult)
Type Parameters
- TAntecedentResult
The type of the result of the antecedent tasks
.
- TResult
The type of the result that is returned by the continuationFunction
delegate and associated with the created Task<TResult>.
Parameters
- tasks
- Task<TAntecedentResult>[]
The array of tasks from which to continue when one task completes.
The function delegate to execute asynchronously when one task in the tasks
array completes.
- continuationOptions
- TaskContinuationOptions
The TaskContinuationOptions value that controls the behavior of the created continuation Task<TResult>.
Returns
The new continuation Task<TResult>.
Exceptions
One of the elements in the tasks
array has been disposed.
continuationOptions
specifies an invalid TaskContinuationOptions value.
Remarks
The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAny
.
See also
Applies to
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task<TResult> that will be started upon the completion of any Task in the provided set.
public:
generic <typename TAntecedentResult, typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<System::Threading::Tasks::Task<TAntecedentResult> ^, TResult> ^ continuationFunction);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult> continuationFunction);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>, 'Result> -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult), TResult)) As Task(Of TResult)
Type Parameters
- TAntecedentResult
The type of the result of the antecedent tasks
.
- TResult
The type of the result that is returned by the continuationFunction
delegate and associated with the created Task<TResult>.
Parameters
- tasks
- Task<TAntecedentResult>[]
The array of tasks from which to continue when one task completes.
The function delegate to execute asynchronously when one task in the tasks
array completes.
Returns
The new continuation Task<TResult>.
Exceptions
One of the elements in the tasks
array has been disposed.
See also
Applies to
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task<TResult> that will be started upon the completion of any Task in the provided set.
public:
generic <typename TAntecedentResult, typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<System::Threading::Tasks::Task<TAntecedentResult> ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult> continuationFunction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>, 'Result> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult), TResult), cancellationToken As CancellationToken) As Task(Of TResult)
Type Parameters
- TAntecedentResult
The type of the result of the antecedent tasks
.
- TResult
The type of the result that is returned by the continuationFunction
delegate and associated with the created Task<TResult>.
Parameters
- tasks
- Task<TAntecedentResult>[]
The array of tasks from which to continue when one task completes.
The function delegate to execute asynchronously when one task in the tasks
array completes.
- cancellationToken
- CancellationToken
The CancellationToken that will be assigned to the new continuation task.
Returns
The new continuation Task<TResult>.
Exceptions
One of the elements in the tasks
array has been disposed.
-or-
The provided CancellationToken has already been disposed.
See also
Applies to
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task<TResult> that will be started upon the completion of any Task in the provided set.
public:
generic <typename TAntecedentResult, typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<System::Threading::Tasks::Task<TAntecedentResult> ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>,TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>, 'Result> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult), TResult), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task(Of TResult)
Type Parameters
- TAntecedentResult
The type of the result of the antecedent tasks
.
- TResult
The type of the result that is returned by the continuationFunction
delegate and associated with the created Task<TResult>.
Parameters
- tasks
- Task<TAntecedentResult>[]
The array of tasks from which to continue when one task completes.
The function delegate to execute asynchronously when one task in the tasks
array completes.
- cancellationToken
- CancellationToken
The CancellationToken that will be assigned to the new continuation task.
- continuationOptions
- TaskContinuationOptions
The TaskContinuationOptions value that controls the behavior of the created continuation Task<TResult>.
- scheduler
- TaskScheduler
The TaskScheduler that is used to schedule the created continuation Task<TResult>.
Returns
The new continuation Task<TResult>.
Exceptions
The tasks
array is null
.
-or-
continuationFunction
is null
.
-or-
scheduler
is null
.
continuationOptions
specifies an invalid TaskContinuationOptions value.
The provided CancellationToken has already been disposed.
Remarks
The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAny
.
See also
Applies to
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task that will be started upon the completion of any Task in the provided set.
public:
generic <typename TAntecedentResult>
System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<System::Threading::Tasks::Task<TAntecedentResult> ^> ^ continuationAction);
public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>> -> System.Threading.Tasks.Task
Public Function ContinueWhenAny(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult))) As Task
Type Parameters
- TAntecedentResult
The type of the result of the antecedent tasks
.
Parameters
- tasks
- Task<TAntecedentResult>[]
The array of tasks from which to continue when one task completes.
The action delegate to execute when one task in the tasks
array completes.
Returns
The new continuation Task.
Exceptions
One of the elements in the tasks
array has been disposed.
See also
Applies to
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task that will be started upon the completion of any Task in the provided set.
public:
generic <typename TAntecedentResult>
System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<System::Threading::Tasks::Task<TAntecedentResult> ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function ContinueWhenAny(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult)), cancellationToken As CancellationToken) As Task
Type Parameters
- TAntecedentResult
The type of the result of the antecedent tasks
.
Parameters
- tasks
- Task<TAntecedentResult>[]
The array of tasks from which to continue when one task completes.
The action delegate to execute when one task in the tasks
array completes.
- cancellationToken
- CancellationToken
The CancellationToken that will be assigned to the new continuation task.
Returns
The new continuation Task.
Exceptions
One of the elements in the tasks
array has been disposed.
-or-
The provided CancellationToken has already been disposed.
See also
Applies to
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task that will be started upon the completion of any Task in the provided set.
public:
generic <typename TAntecedentResult>
System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<System::Threading::Tasks::Task<TAntecedentResult> ^> ^ continuationAction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task
Public Function ContinueWhenAny(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult)), continuationOptions As TaskContinuationOptions) As Task
Type Parameters
- TAntecedentResult
The type of the result of the antecedent tasks
.
Parameters
- tasks
- Task<TAntecedentResult>[]
The array of tasks from which to continue when one task completes.
The action delegate to execute when one task in the tasks
array completes.
- continuationOptions
- TaskContinuationOptions
The TaskContinuationOptions value that controls the behavior of the created continuation Task.
Returns
The new continuation Task.
Exceptions
One of the elements in the tasks
array has been disposed.
continuationOptions
specifies an invalid TaskContinuationOptions value.
Remarks
The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAny
.
See also
Applies to
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task that will be started upon the completion of any Task in the provided set.
public:
generic <typename TAntecedentResult>
System::Threading::Tasks::Task ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<System::Threading::Tasks::Task<TAntecedentResult> ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task ContinueWhenAny<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
member this.ContinueWhenAny : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task
Public Function ContinueWhenAny(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult)), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task
Type Parameters
- TAntecedentResult
The type of the result of the antecedent tasks
.
Parameters
- tasks
- Task<TAntecedentResult>[]
The array of tasks from which to continue when one task completes.
The action delegate to execute when one task in the tasks
array completes.
- cancellationToken
- CancellationToken
The CancellationToken that will be assigned to the new continuation task.
- continuationOptions
- TaskContinuationOptions
The TaskContinuationOptions value that controls the behavior of the created continuation Task.
- scheduler
- TaskScheduler
The TaskScheduler that is used to schedule the created continuation Task<TResult>.
Returns
The new continuation Task.
Exceptions
The tasks
array is null
.
-or-
continuationAction
is null
.
-or-
paramref name="scheduler" /> is null
.
continuationOptions
specifies an invalid TaskContinuationOptions value.
The provided CancellationToken has already been disposed.
Remarks
The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAny
.
See also
Applies to
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task<TResult> that will be started upon the completion of any Task in the provided set.
public:
generic <typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<System::Threading::Tasks::Task ^, TResult> ^ continuationFunction);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task,TResult> continuationFunction);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task, 'Result> -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task, TResult)) As Task(Of TResult)
Type Parameters
- TResult
The type of the result that is returned by the continuationFunction
delegate and associated with the created Task<TResult>.
Parameters
- tasks
- Task[]
The array of tasks from which to continue when one task completes.
The function delegate to execute asynchronously when one task in the tasks
array completes.
Returns
The new continuation Task<TResult>.
Exceptions
One of the elements in the tasks
array has been disposed.
See also
Applies to
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task<TResult> that will be started upon the completion of any Task in the provided set.
public:
generic <typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<System::Threading::Tasks::Task ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task,TResult> continuationFunction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task, 'Result> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task, TResult), cancellationToken As CancellationToken) As Task(Of TResult)
Type Parameters
- TResult
The type of the result that is returned by the continuationFunction
delegate and associated with the created Task<TResult>.
Parameters
- tasks
- Task[]
The array of tasks from which to continue when one task completes.
The function delegate to execute asynchronously when one task in the tasks
array completes.
- cancellationToken
- CancellationToken
The CancellationToken that will be assigned to the new continuation task.
Returns
The new continuation Task<TResult>.
Exceptions
One of the elements in the tasks
array has been disposed.
-or-
The provided CancellationToken has already been disposed.
See also
Applies to
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, TaskContinuationOptions)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task<TResult> that will be started upon the completion of any Task in the provided set.
public:
generic <typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<System::Threading::Tasks::Task ^, TResult> ^ continuationFunction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task,TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task, 'Result> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task, TResult), continuationOptions As TaskContinuationOptions) As Task(Of TResult)
Type Parameters
- TResult
The type of the result that is returned by the continuationFunction
delegate and associated with the created Task<TResult>.
Parameters
- tasks
- Task[]
The array of tasks from which to continue when one task completes.
The function delegate to execute asynchronously when one task in the tasks
array completes.
- continuationOptions
- TaskContinuationOptions
The TaskContinuationOptions value that controls the behavior of the created continuation Task<TResult>.
Returns
The new continuation Task<TResult>.
Exceptions
One of the elements in the tasks
array has been disposed.
continuationOptions
specifies an invalid TaskContinuationOptions value.
Remarks
The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAny
.
See also
Applies to
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
- Source:
- TaskFactory.cs
Creates a continuation Task<TResult> that will be started upon the completion of any Task in the provided set.
public:
generic <typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAny(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<System::Threading::Tasks::Task ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task<TResult> ContinueWhenAny<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task,TResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
member this.ContinueWhenAny : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task, 'Result> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAny(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task, TResult), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task(Of TResult)
Type Parameters
- TResult
The type of the result that is returned by the continuationFunction
delegate and associated with the created Task<TResult>.
Parameters
- tasks
- Task[]
The array of tasks from which to continue when one task completes.
The function delegate to execute asynchronously when one task in the tasks
array completes.
- cancellationToken
- CancellationToken
The CancellationToken that will be assigned to the new continuation task.
- continuationOptions
- TaskContinuationOptions
The TaskContinuationOptions value that controls the behavior of the created continuation Task<TResult>.
- scheduler
- TaskScheduler
The TaskScheduler that is used to schedule the created continuation Task<TResult>.
Returns
The new continuation Task<TResult>.
Exceptions
The tasks
array is null
.
-or-
continuationFunction
is null
.
-or-
scheduler
is null
.
continuationOptions
specifies an invalid TaskContinuationOptions value.
The provided CancellationToken has already been disposed.
Remarks
The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAny
.