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)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationAction
Action<Task>

Делегат действия для выполнения при завершении одной задачи в массиве tasks .

continuationOptions
TaskContinuationOptions

Значение TaskContinuationOptions , которое управляет поведением созданного продолжения Task.

Возвращаемое значение

Новое продолжение Task.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

–или–

continuationAction равно null.

continuationOptions указывает недопустимое значение TaskContinuationOptions.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

Комментарии

NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAny.

См. также раздел

Применяется к

ContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationAction
Action<Task>

Делегат действия для выполнения при завершении одной задачи в массиве tasks .

cancellationToken
CancellationToken

Эта CancellationToken задача будет назначена новой задаче продолжения.

continuationOptions
TaskContinuationOptions

Значение TaskContinuationOptions , которое управляет поведением созданного продолжения Task.

scheduler
TaskScheduler

Используется TaskScheduler для планирования созданного продолжения Task.

Возвращаемое значение

Новое продолжение Task.

Исключения

Массив tasks имеет значение null.

–или–

continuationAction равно null.

–или–

scheduler равно null.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

continuationOptions указывает недопустимое значение TaskContinuationOptions.

Предоставленные CancellationToken уже удалены.

Комментарии

NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAny.

См. также раздел

Применяется к

ContinueWhenAny(Task[], Action<Task>)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationAction
Action<Task>

Делегат действия для выполнения при завершении одной задачи в массиве tasks .

Возвращаемое значение

Новое продолжение Task.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

–или–

Аргумент continuationAction имеет значение null.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

Примеры

В следующем примере показано, как использовать 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)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationAction
Action<Task>

Делегат действия для выполнения при завершении одной задачи в массиве tasks .

cancellationToken
CancellationToken

Эта CancellationToken задача будет назначена новой задаче продолжения.

Возвращаемое значение

Новое продолжение Task.

Исключения

Один из элементов массива tasks удален.

–или–

cancellationToken уже удален.

Массив tasks имеет значение null.

–или–

Аргумент continuationAction имеет значение null.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

См. также раздел

Применяется к

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, TaskContinuationOptions)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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>[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Делегат функции, который выполняется асинхронно, когда одна задача в массиве tasks завершается.

continuationOptions
TaskContinuationOptions

Значение TaskContinuationOptions , которое управляет поведением созданного продолжения Task<TResult>.

Возвращаемое значение

Новое продолжение Task<TResult>.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

–или–

continuationFunction равно null.

continuationOptions указывает недопустимое значение TaskContinuationOptions.

Массив tasks содержит значение NULL.

–или–

Массив tasks пуст.

Комментарии

NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAny.

См. также раздел

Применяется к

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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>[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Делегат функции, который выполняется асинхронно, когда одна задача в массиве tasks завершается.

Возвращаемое значение

Новое продолжение Task<TResult>.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

–или–

continuationFunction равно null.

Массив tasks содержит значение NULL.

–или–

Массив tasks пуст.

См. также раздел

Применяется к

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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>[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Делегат функции, который выполняется асинхронно, когда одна задача в массиве tasks завершается.

cancellationToken
CancellationToken

Эта CancellationToken задача будет назначена новой задаче продолжения.

Возвращаемое значение

Новое продолжение Task<TResult>.

Исключения

Один из элементов массива tasks удален.

–или–

Предоставленные CancellationToken уже удалены.

Массив tasks имеет значение null.

–или–

continuationFunction равно null.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

См. также раздел

Применяется к

ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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>[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Делегат функции, который выполняется асинхронно, когда одна задача в массиве tasks завершается.

cancellationToken
CancellationToken

Эта CancellationToken задача будет назначена новой задаче продолжения.

continuationOptions
TaskContinuationOptions

Значение TaskContinuationOptions , которое управляет поведением созданного продолжения Task<TResult>.

scheduler
TaskScheduler

Используется TaskScheduler для планирования созданного продолжения Task<TResult>.

Возвращаемое значение

Новое продолжение Task<TResult>.

Исключения

Массив tasks имеет значение null.

–или–

continuationFunction равно null.

–или–

scheduler равно null.

Массив tasks содержит значение NULL.

–или–

Массив tasks пуст.

continuationOptions указывает недопустимое значение TaskContinuationOptions.

Предоставленные CancellationToken уже удалены.

Комментарии

NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAny.

См. также раздел

Применяется к

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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>[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationAction
Action<Task<TAntecedentResult>>

Делегат действия для выполнения при завершении одной задачи в массиве tasks .

Возвращаемое значение

Новое продолжение Task.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

–или–

continuationAction равно null.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

См. также раздел

Применяется к

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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>[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationAction
Action<Task<TAntecedentResult>>

Делегат действия для выполнения при завершении одной задачи в массиве tasks .

cancellationToken
CancellationToken

Эта CancellationToken задача будет назначена новой задаче продолжения.

Возвращаемое значение

Новое продолжение Task.

Исключения

Один из элементов массива tasks удален.

–или–

Предоставленные CancellationToken уже удалены.

Массив tasks имеет значение null.

–или–

continuationAction равно null.

Массив tasks содержит значение NULL.

–или–

Массив tasks пуст.

См. также раздел

Применяется к

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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>[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationAction
Action<Task<TAntecedentResult>>

Делегат действия для выполнения при завершении одной задачи в массиве tasks .

continuationOptions
TaskContinuationOptions

Значение TaskContinuationOptions , которое управляет поведением созданного продолжения Task.

Возвращаемое значение

Новое продолжение Task.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

–или–

continuationAction равно null.

continuationOptions указывает недопустимое значение TaskContinuationOptions.

Массив tasks содержит значение NULL.

–или–

Массив tasks пуст.

Комментарии

NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAny.

См. также раздел

Применяется к

ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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>[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationAction
Action<Task<TAntecedentResult>>

Делегат действия для выполнения при завершении одной задачи в массиве tasks .

cancellationToken
CancellationToken

Эта CancellationToken задача будет назначена новой задаче продолжения.

continuationOptions
TaskContinuationOptions

Значение TaskContinuationOptions , которое управляет поведением созданного продолжения Task.

scheduler
TaskScheduler

Используется TaskScheduler для планирования созданного продолжения Task<TResult>.

Возвращаемое значение

Новое продолжение Task.

Исключения

Массив tasks имеет значение null.

–или–

continuationAction равно null.

–или–

paramref name="scheduler" /> is null.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

continuationOptions указывает недопустимое TaskContinuationOptions значение.

Предоставленные CancellationToken уже удалены.

Комментарии

NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAny.

См. также раздел

Применяется к

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationFunction
Func<Task,TResult>

Делегат функции, который выполняется асинхронно, когда одна задача в массиве tasks завершается.

Возвращаемое значение

Новое продолжение Task<TResult>.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

–или–

continuationFunction равно null.

Массив tasks содержит значение NULL.

–или–

Массив tasks пуст.

См. также раздел

Применяется к

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationFunction
Func<Task,TResult>

Делегат функции, который выполняется асинхронно, когда одна задача в массиве tasks завершается.

cancellationToken
CancellationToken

Эта CancellationToken задача будет назначена новой задаче продолжения.

Возвращаемое значение

Новое продолжение Task<TResult>.

Исключения

Один из элементов массива tasks удален.

–или–

Предоставленные CancellationToken уже удалены.

Массив tasks имеет значение null.

–или–

continuationFunction равно null.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

См. также раздел

Применяется к

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, TaskContinuationOptions)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationFunction
Func<Task,TResult>

Делегат функции, который выполняется асинхронно, когда одна задача в массиве tasks завершается.

continuationOptions
TaskContinuationOptions

Значение TaskContinuationOptions , которое управляет поведением созданного продолжения Task<TResult>.

Возвращаемое значение

Новое продолжение Task<TResult>.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

–или–

continuationFunction равно null.

continuationOptions указывает недопустимое значение TaskContinuationOptions.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

Комментарии

NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAny.

См. также раздел

Применяется к

ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs
Исходный код:
TaskFactory.cs

Создает продолжение 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[]

Массив задач, из которых следует продолжить, когда одна задача завершается.

continuationFunction
Func<Task,TResult>

Делегат функции, который выполняется асинхронно, когда одна задача в массиве tasks завершается.

cancellationToken
CancellationToken

Эта CancellationToken задача будет назначена новой задаче продолжения.

continuationOptions
TaskContinuationOptions

Значение TaskContinuationOptions , которое управляет поведением созданного продолжения Task<TResult>.

scheduler
TaskScheduler

Используется TaskScheduler для планирования созданного продолжения Task<TResult>.

Возвращаемое значение

Новое продолжение Task<TResult>.

Исключения

Массив tasks имеет значение null.

–или–

continuationFunction равно null.

–или–

scheduler равно null.

Массив tasks содержит null значение.

–или–

Массив tasks пуст.

continuationOptions указывает недопустимое значение TaskContinuationOptions.

Предоставленные CancellationToken уже удалены.

Комментарии

NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAny.

См. также раздел

Применяется к