Compartilhar via


TaskFactory.ContinueWhenAny Método

Definição

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

Sobrecargas

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

ContinueWhenAny(Task[], Action<Task>)

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationAction
Action<Task>

O delegado de ação a ser executado quando uma tarefa na matriz tasks for concluída.

continuationOptions
TaskContinuationOptions

O valor TaskContinuationOptions que controla o comportamento da Task de continuação criada.

Retornos

Task

O novo Task de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

A matriz do tasks é null.

- ou - continuationAction é null.

continuationOptions especifica um valor TaskContinuationOptions inválido.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

Comentários

O NotOn* e o OnlyOn*TaskContinuationOptions, que restringem para os quais TaskStatus estados uma continuação será executada, são ilegais com ContinueWhenAny.

Confira também

Aplica-se a

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationAction
Action<Task>

O delegado de ação a ser executado quando uma tarefa na matriz tasks for concluída.

cancellationToken
CancellationToken

O CancellationToken que será atribuído à nova tarefa de continuação.

continuationOptions
TaskContinuationOptions

O valor TaskContinuationOptions que controla o comportamento da Task de continuação criada.

scheduler
TaskScheduler

O TaskScheduler usado para agendar a Task de continuação criada.

Retornos

Task

O novo Task de continuação.

Exceções

A matriz do tasks é null.

- ou - continuationAction é null.

- ou - scheduler é null.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

continuationOptions especifica um valor TaskContinuationOptions inválido.

O CancellationToken fornecido já foi descartado.

Comentários

O NotOn* e o OnlyOn* TaskContinuationOptions, que restringem para os quais TaskStatus estados uma continuação será executada, são ilegais com ContinueWhenAny.

Confira também

Aplica-se a

ContinueWhenAny(Task[], Action<Task>)

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationAction
Action<Task>

O delegado de ação a ser executado quando uma tarefa na matriz tasks for concluída.

Retornos

Task

O novo Task de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

Exemplos

O exemplo a seguir mostra como usar ContinueWhenAny e 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

Confira também

Aplica-se a

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationAction
Action<Task>

O delegado de ação a ser executado quando uma tarefa na matriz tasks for concluída.

cancellationToken
CancellationToken

O CancellationToken que será atribuído à nova tarefa de continuação.

Retornos

Task

O novo Task de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

- ou - cancellationToken já foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

Confira também

Aplica-se a

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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)

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

TResult

O tipo do resultado que é retornado pelo continuationFunction delegado e associado ao criado Task<TResult>.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

O delegado de função a ser executado de forma assíncrona quando uma tarefa na matriz tasks for concluída.

continuationOptions
TaskContinuationOptions

O valor TaskContinuationOptions que controla o comportamento da Task<TResult> de continuação criada.

Retornos

Task<TResult>

O novo Task<TResult> de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

A matriz do tasks é null.

- ou - continuationFunction é null.

continuationOptions especifica um valor TaskContinuationOptions inválido.

A matriz tasks contém um valor nulo.

- ou - A matriz tasks está vazia.

Comentários

O NotOn* e o OnlyOn*TaskContinuationOptions, que restringem para os quais TaskStatus estados uma continuação será executada, são ilegais com ContinueWhenAny.

Confira também

Aplica-se a

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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)

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado ao criado Task<TResult>.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

O delegado de função a ser executado de forma assíncrona quando uma tarefa na matriz tasks for concluída.

Retornos

Task<TResult>

O novo Task<TResult> de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

A matriz do tasks é null.

- ou - continuationFunction é null.

A matriz tasks contém um valor nulo.

- ou - A matriz tasks está vazia.

Confira também

Aplica-se a

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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)

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado ao criado Task<TResult>.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

O delegado de função a ser executado de forma assíncrona quando uma tarefa na matriz tasks for concluída.

cancellationToken
CancellationToken

O CancellationToken que será atribuído à nova tarefa de continuação.

Retornos

Task<TResult>

O novo Task<TResult> de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

- ou - O CancellationToken fornecido já foi descartado.

A matriz do tasks é null.

- ou - continuationFunction é null.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

Confira também

Aplica-se a

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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)

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

TResult

O tipo do resultado que é retornado pelo continuationFunction delegado e associado ao criado Task<TResult>.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

O delegado de função a ser executado de forma assíncrona quando uma tarefa na matriz tasks for concluída.

cancellationToken
CancellationToken

O CancellationToken que será atribuído à nova tarefa de continuação.

continuationOptions
TaskContinuationOptions

O valor TaskContinuationOptions que controla o comportamento da Task<TResult> de continuação criada.

scheduler
TaskScheduler

O TaskScheduler usado para agendar a Task<TResult> de continuação criada.

Retornos

Task<TResult>

O novo Task<TResult> de continuação.

Exceções

A matriz do tasks é null.

- ou - continuationFunction é null.

- ou - scheduler é null.

A matriz tasks contém um valor nulo.

- ou - A matriz tasks está vazia.

continuationOptions especifica um valor TaskContinuationOptions inválido.

O CancellationToken fornecido já foi descartado.

Comentários

O NotOn* e o OnlyOn*TaskContinuationOptions, que restringem para os quais TaskStatus estados uma continuação será executada, são ilegais com ContinueWhenAny.

Confira também

Aplica-se a

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationAction
Action<Task<TAntecedentResult>>

O delegado de ação a ser executado quando uma tarefa na matriz tasks for concluída.

Retornos

Task

O novo Task de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

A matriz do tasks é null.

- ou - continuationAction é null.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

Confira também

Aplica-se a

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationAction
Action<Task<TAntecedentResult>>

O delegado de ação a ser executado quando uma tarefa na matriz tasks for concluída.

cancellationToken
CancellationToken

O CancellationToken que será atribuído à nova tarefa de continuação.

Retornos

Task

O novo Task de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

- ou - O CancellationToken fornecido já foi descartado.

A matriz do tasks é null.

- ou - continuationAction é null.

A matriz tasks contém um valor nulo.

- ou - A matriz tasks está vazia.

Confira também

Aplica-se a

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationAction
Action<Task<TAntecedentResult>>

O delegado de ação a ser executado quando uma tarefa na matriz tasks for concluída.

continuationOptions
TaskContinuationOptions

O valor TaskContinuationOptions que controla o comportamento da Task de continuação criada.

Retornos

Task

O novo Task de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

A matriz do tasks é null.

- ou - continuationAction é null.

continuationOptions especifica um valor TaskContinuationOptions inválido.

A matriz tasks contém um valor nulo.

- ou - A matriz tasks está vazia.

Comentários

O NotOn* e o OnlyOn* TaskContinuationOptions, que restringem para os quais TaskStatus estados uma continuação será executada, são ilegais com ContinueWhenAny.

Confira também

Aplica-se a

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

Cria um Task de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationAction
Action<Task<TAntecedentResult>>

O delegado de ação a ser executado quando uma tarefa na matriz tasks for concluída.

cancellationToken
CancellationToken

O CancellationToken que será atribuído à nova tarefa de continuação.

continuationOptions
TaskContinuationOptions

O valor TaskContinuationOptions que controla o comportamento da Task de continuação criada.

scheduler
TaskScheduler

O TaskScheduler usado para agendar a Task<TResult> de continuação criada.

Retornos

Task

O novo Task de continuação.

Exceções

A matriz do tasks é null.

- ou - continuationAction é null.

- ou - paramref name="scheduler" /> é null.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

continuationOptions especifica um valor TaskContinuationOptions inválido.

O CancellationToken fornecido já foi descartado.

Comentários

O NotOn* e o OnlyOn* TaskContinuationOptions, que restringem para os quais TaskStatus estados uma continuação será executada, são ilegais com ContinueWhenAny.

Confira também

Aplica-se a

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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)

Parâmetros de tipo

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado ao criado Task<TResult>.

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationFunction
Func<Task,TResult>

O delegado de função a ser executado de forma assíncrona quando uma tarefa na matriz tasks for concluída.

Retornos

Task<TResult>

O novo Task<TResult> de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

A matriz do tasks é null.

- ou - continuationFunction é null.

A matriz tasks contém um valor nulo.

- ou - A matriz tasks está vazia.

Confira também

Aplica-se a

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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)

Parâmetros de tipo

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado ao criado Task<TResult>.

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationFunction
Func<Task,TResult>

O delegado de função a ser executado de forma assíncrona quando uma tarefa na matriz tasks for concluída.

cancellationToken
CancellationToken

O CancellationToken que será atribuído à nova tarefa de continuação.

Retornos

Task<TResult>

O novo Task<TResult> de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

- ou - O CancellationToken fornecido já foi descartado.

A matriz do tasks é null.

- ou - continuationFunction é null.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

Confira também

Aplica-se a

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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)

Parâmetros de tipo

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado ao criado Task<TResult>.

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationFunction
Func<Task,TResult>

O delegado de função a ser executado de forma assíncrona quando uma tarefa na matriz tasks for concluída.

continuationOptions
TaskContinuationOptions

O valor TaskContinuationOptions que controla o comportamento da Task<TResult> de continuação criada.

Retornos

Task<TResult>

O novo Task<TResult> de continuação.

Exceções

Um dos elementos na matriz tasks foi descartado.

A matriz do tasks é null.

- ou - continuationFunction é null.

continuationOptions especifica um valor TaskContinuationOptions inválido.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

Comentários

O NotOn* e o OnlyOn* TaskContinuationOptions, que restringem para os quais TaskStatus estados uma continuação será executada, são ilegais com ContinueWhenAny.

Confira também

Aplica-se a

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

Cria um Task<TResult> de continuação que será iniciado mediante a conclusão de qualquer Tarefa no conjunto fornecido.

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)

Parâmetros de tipo

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado ao criado Task<TResult>.

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar quando uma tarefa for concluída.

continuationFunction
Func<Task,TResult>

O delegado de função a ser executado de forma assíncrona quando uma tarefa na matriz tasks for concluída.

cancellationToken
CancellationToken

O CancellationToken que será atribuído à nova tarefa de continuação.

continuationOptions
TaskContinuationOptions

O valor TaskContinuationOptions que controla o comportamento da Task<TResult> de continuação criada.

scheduler
TaskScheduler

O TaskScheduler usado para agendar a Task<TResult> de continuação criada.

Retornos

Task<TResult>

O novo Task<TResult> de continuação.

Exceções

A matriz do tasks é null.

- ou - continuationFunction é null.

- ou - scheduler é null.

A matriz tasks contém um valor null.

- ou - A matriz tasks está vazia.

continuationOptions especifica um valor TaskContinuationOptions inválido.

O CancellationToken fornecido já foi descartado.

Comentários

O NotOn* e o OnlyOn* TaskContinuationOptions, que restringem para os quais TaskStatus estados uma continuação será executada, são ilegais com ContinueWhenAny.

Confira também

Aplica-se a