TaskFactory.ContinueWhenAny Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
Перегрузки
ContinueWhenAny(Task[], Action<Task>, TaskContinuationOptions) |
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny(Task[], Action<Task>) |
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny(Task[], Action<Task>, CancellationToken) |
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, TaskContinuationOptions) |
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>) |
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken) |
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>) |
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken) |
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions) |
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>) |
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken) |
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, TaskContinuationOptions) |
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе. |
ContinueWhenAny(Task[], Action<Task>, TaskContinuationOptions)
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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
Параметры
- tasks
- Task[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат действия для выполнения после завершения выполнения одной задачи в массиве tasks
.
- continuationOptions
- TaskContinuationOptions
Значение TaskContinuationOptions, которое управляет поведением созданной задачи продолжения Task.
Возвращаемое значение
Новое продолжение Task.
Исключения
Один из элементов массива tasks
удален.
Массив tasks
имеет значение null
.
-или-
continuationAction
имеет значение null
.
Параметр continuationOptions
имеет недопустимое значение TaskContinuationOptions.
Комментарии
NotOn и OnlyOn**TaskContinuationOptions, ограничивающие состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными.ContinueWhenAny
См. также раздел
Применяется к
ContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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
Параметры
- tasks
- Task[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат действия для выполнения после завершения выполнения одной задачи в массиве tasks
.
- cancellationToken
- CancellationToken
Токен CancellationToken, который будет назначен новой задаче продолжения.
- continuationOptions
- TaskContinuationOptions
Значение TaskContinuationOptions, которое управляет поведением созданной задачи продолжения Task.
- scheduler
- TaskScheduler
Планировщик TaskScheduler, который используется для планирования созданной задачи продолжения Task.
Возвращаемое значение
Новое продолжение Task.
Исключения
Массив tasks
имеет значение null
.
-или-
continuationAction
имеет значение null
.
-или-
scheduler
имеет значение null
.
Параметр continuationOptions
имеет недопустимое значение TaskContinuationOptions.
Предоставленный объект CancellationToken уже удален.
Комментарии
NotOn и OnlyOn**TaskContinuationOptions, который ограничивает состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными с .ContinueWhenAny
См. также раздел
Применяется к
ContinueWhenAny(Task[], Action<Task>)
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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
Параметры
- tasks
- Task[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат действия для выполнения после завершения выполнения одной задачи в массиве tasks
.
Возвращаемое значение
Новое продолжение Task.
Исключения
Один из элементов массива tasks
удален.
Массив tasks
имеет значение null
.
-или-
Аргумент continuationAction
имеет значение null
.
Примеры
В следующем примере показано, как использовать ContinueWhenAny
и 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
См. также раздел
Применяется к
ContinueWhenAny(Task[], Action<Task>, CancellationToken)
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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
Параметры
- tasks
- Task[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат действия для выполнения после завершения выполнения одной задачи в массиве tasks
.
- cancellationToken
- CancellationToken
Токен CancellationToken, который будет назначен новой задаче продолжения.
Возвращаемое значение
Новое продолжение Task.
Исключения
Один из элементов массива tasks
удален.
-или-
Объект cancellationToken
уже был удален.
Массив tasks
имеет значение null
.
-или-
Аргумент continuationAction
имеет значение null
.
См. также раздел
Применяется к
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, TaskContinuationOptions)
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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)
Параметры типа
- TAntecedentResult
Тип результата предыдущего объекта tasks
.
- TResult
Тип результата, возвращенного делегатом continuationFunction
и связанного с созданным объектом Task<TResult>.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат функции, выполняемый асинхронно после завершения выполнения одной задачи в массиве tasks
.
- continuationOptions
- TaskContinuationOptions
Значение TaskContinuationOptions, которое управляет поведением созданной задачи продолжения Task<TResult>.
Возвращаемое значение
Новое продолжение Task<TResult>.
Исключения
Один из элементов массива tasks
удален.
Массив tasks
имеет значение null
.
-или-
continuationFunction
имеет значение null
.
Параметр continuationOptions
имеет недопустимое значение TaskContinuationOptions.
Комментарии
NotOn и OnlyOn**TaskContinuationOptions, который ограничивает состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными с .ContinueWhenAny
См. также раздел
Применяется к
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>)
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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)
Параметры типа
- TAntecedentResult
Тип результата предыдущего объекта tasks
.
- TResult
Тип результата, возвращенного делегатом continuationFunction
и связанного с созданным объектом Task<TResult>.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат функции, выполняемый асинхронно после завершения выполнения одной задачи в массиве tasks
.
Возвращаемое значение
Новое продолжение Task<TResult>.
Исключения
Один из элементов массива tasks
удален.
Массив tasks
имеет значение null
.
-или-
continuationFunction
имеет значение null
.
См. также раздел
Применяется к
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken)
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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)
Параметры типа
- TAntecedentResult
Тип результата предыдущего объекта tasks
.
- TResult
Тип результата, возвращенного делегатом continuationFunction
и связанного с созданным объектом Task<TResult>.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат функции, выполняемый асинхронно после завершения выполнения одной задачи в массиве tasks
.
- cancellationToken
- CancellationToken
Токен CancellationToken, который будет назначен новой задаче продолжения.
Возвращаемое значение
Новое продолжение Task<TResult>.
Исключения
Один из элементов массива tasks
удален.
-или- Предоставленный объект CancellationToken уже удален.
Массив tasks
имеет значение null
.
-или-
continuationFunction
имеет значение null
.
См. также раздел
Применяется к
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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)
Параметры типа
- TAntecedentResult
Тип результата предыдущего объекта tasks
.
- TResult
Тип результата, возвращенного делегатом continuationFunction
и связанного с созданным объектом Task<TResult>.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат функции, выполняемый асинхронно после завершения выполнения одной задачи в массиве tasks
.
- cancellationToken
- CancellationToken
Токен CancellationToken, который будет назначен новой задаче продолжения.
- continuationOptions
- TaskContinuationOptions
Значение TaskContinuationOptions, которое управляет поведением созданной задачи продолжения Task<TResult>.
- scheduler
- TaskScheduler
Планировщик TaskScheduler, который используется для планирования созданной задачи продолжения Task<TResult>.
Возвращаемое значение
Новое продолжение Task<TResult>.
Исключения
Массив tasks
имеет значение null
.
-или-
continuationFunction
имеет значение null
.
-или-
scheduler
имеет значение null
.
Параметр continuationOptions
имеет недопустимое значение TaskContinuationOptions.
Предоставленный объект CancellationToken уже удален.
Комментарии
NotOn и OnlyOn**TaskContinuationOptions, который ограничивает состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными с .ContinueWhenAny
См. также раздел
Применяется к
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>)
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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
Параметры типа
- TAntecedentResult
Тип результата предыдущего объекта tasks
.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат действия для выполнения после завершения выполнения одной задачи в массиве tasks
.
Возвращаемое значение
Новое продолжение Task.
Исключения
Один из элементов массива tasks
удален.
Массив tasks
имеет значение null
.
-или-
continuationAction
имеет значение null
.
См. также раздел
Применяется к
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken)
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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
Параметры типа
- TAntecedentResult
Тип результата предыдущего объекта tasks
.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат действия для выполнения после завершения выполнения одной задачи в массиве tasks
.
- cancellationToken
- CancellationToken
Токен CancellationToken, который будет назначен новой задаче продолжения.
Возвращаемое значение
Новое продолжение Task.
Исключения
Один из элементов массива tasks
удален.
-или- Предоставленный объект CancellationToken уже удален.
Массив tasks
имеет значение null
.
-или-
continuationAction
имеет значение null
.
См. также раздел
Применяется к
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions)
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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
Параметры типа
- TAntecedentResult
Тип результата предыдущего объекта tasks
.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат действия для выполнения после завершения выполнения одной задачи в массиве tasks
.
- continuationOptions
- TaskContinuationOptions
Значение TaskContinuationOptions, которое управляет поведением созданной задачи продолжения Task.
Возвращаемое значение
Новое продолжение Task.
Исключения
Один из элементов массива tasks
удален.
Массив tasks
имеет значение null
.
-или-
continuationAction
имеет значение null
.
Параметр continuationOptions
имеет недопустимое значение TaskContinuationOptions.
Комментарии
NotOn и OnlyOn**TaskContinuationOptions, который ограничивает состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными с .ContinueWhenAny
См. также раздел
Применяется к
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Создает продолжение задачи Task, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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
Параметры типа
- TAntecedentResult
Тип результата предыдущего объекта tasks
.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат действия для выполнения после завершения выполнения одной задачи в массиве tasks
.
- cancellationToken
- CancellationToken
Токен CancellationToken, который будет назначен новой задаче продолжения.
- continuationOptions
- TaskContinuationOptions
Значение TaskContinuationOptions, которое управляет поведением созданной задачи продолжения Task.
- scheduler
- TaskScheduler
Планировщик TaskScheduler, который используется для планирования созданной задачи продолжения Task<TResult>.
Возвращаемое значение
Новое продолжение Task.
Исключения
Массив tasks
имеет значение null
.
-или-
continuationAction
имеет значение null
.
-или-
paramref name="scheduler" /> имеет значение null
.
Параметр continuationOptions
имеет недопустимое значение TaskContinuationOptions.
Предоставленный объект CancellationToken уже удален.
Комментарии
NotOn и OnlyOn**TaskContinuationOptions, который ограничивает состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными с .ContinueWhenAny
См. также раздел
Применяется к
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>)
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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)
Параметры типа
- TResult
Тип результата, возвращенного делегатом continuationFunction
и связанного с созданным объектом Task<TResult>.
Параметры
- tasks
- Task[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат функции, выполняемый асинхронно после завершения выполнения одной задачи в массиве tasks
.
Возвращаемое значение
Новое продолжение Task<TResult>.
Исключения
Один из элементов массива tasks
удален.
Массив tasks
имеет значение null
.
-или-
continuationFunction
имеет значение null
.
См. также раздел
Применяется к
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken)
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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)
Параметры типа
- TResult
Тип результата, возвращенного делегатом continuationFunction
и связанного с созданным объектом Task<TResult>.
Параметры
- tasks
- Task[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат функции, выполняемый асинхронно после завершения выполнения одной задачи в массиве tasks
.
- cancellationToken
- CancellationToken
Токен CancellationToken, который будет назначен новой задаче продолжения.
Возвращаемое значение
Новое продолжение Task<TResult>.
Исключения
Один из элементов массива tasks
удален.
-или- Предоставленный объект CancellationToken уже удален.
Массив tasks
имеет значение null
.
-или-
continuationFunction
имеет значение null
.
См. также раздел
Применяется к
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, TaskContinuationOptions)
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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)
Параметры типа
- TResult
Тип результата, возвращенного делегатом continuationFunction
и связанного с созданным объектом Task<TResult>.
Параметры
- tasks
- Task[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат функции, выполняемый асинхронно после завершения выполнения одной задачи в массиве tasks
.
- continuationOptions
- TaskContinuationOptions
Значение TaskContinuationOptions, которое управляет поведением созданной задачи продолжения Task<TResult>.
Возвращаемое значение
Новое продолжение Task<TResult>.
Исключения
Один из элементов массива tasks
удален.
Массив tasks
имеет значение null
.
-или-
continuationFunction
имеет значение null
.
Параметр continuationOptions
имеет недопустимое значение TaskContinuationOptions.
Комментарии
NotOn и OnlyOn**TaskContinuationOptions, который ограничивает состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными с .ContinueWhenAny
См. также раздел
Применяется к
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Создает продолжение задачи Task<TResult>, которое будет запущено после завершения выполнения любой задачи в указанном наборе.
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)
Параметры типа
- TResult
Тип результата, возвращенного делегатом continuationFunction
и связанного с созданным объектом Task<TResult>.
Параметры
- tasks
- Task[]
Массив задач, выполнение которых должно быть продолжено после завершения выполнения одной задачи.
Делегат функции, выполняемый асинхронно после завершения выполнения одной задачи в массиве tasks
.
- cancellationToken
- CancellationToken
Токен CancellationToken, который будет назначен новой задаче продолжения.
- continuationOptions
- TaskContinuationOptions
Значение TaskContinuationOptions, которое управляет поведением созданной задачи продолжения Task<TResult>.
- scheduler
- TaskScheduler
Планировщик TaskScheduler, который используется для планирования созданной задачи продолжения Task<TResult>.
Возвращаемое значение
Новое продолжение Task<TResult>.
Исключения
Массив tasks
имеет значение null
.
-или-
continuationFunction
имеет значение null
.
-или-
scheduler
имеет значение null
.
Параметр continuationOptions
имеет недопустимое значение TaskContinuationOptions.
Предоставленный объект CancellationToken уже удален.
Комментарии
NotOn и OnlyOn**TaskContinuationOptions, который ограничивает состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными с .ContinueWhenAny