TaskFactory.ContinueWhenAny Método

Definición

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

Sobrecargas

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

ContinueWhenAny(Task[], Action<Task>)

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationAction
Action<Task>

Delegado de acción que se va a ejecutar cuando se completa una tarea de la tasks matriz.

continuationOptions
TaskContinuationOptions

Valor TaskContinuationOptions que controla el comportamiento de la continuación Taskcreada.

Devoluciones

Nueva continuación Task.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

La tasks matriz es null.

O bien

continuationAction es null.

continuationOptions especifica un valor TaskContinuationOptions no válido.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

Comentarios

NotOn* y OnlyOn* TaskContinuationOptions, que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny.

Consulte también

Se aplica a

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationAction
Action<Task>

Delegado de acción que se va a ejecutar cuando se completa una tarea de la tasks matriz.

cancellationToken
CancellationToken

que CancellationToken se asignará a la nueva tarea de continuación.

continuationOptions
TaskContinuationOptions

Valor TaskContinuationOptions que controla el comportamiento de la continuación Taskcreada.

scheduler
TaskScheduler

TaskScheduler que se usa para programar la continuación Taskcreada.

Devoluciones

Nueva continuación Task.

Excepciones

La tasks matriz es null.

O bien

continuationAction es null.

O bien

scheduler es null.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

continuationOptions especifica un valor TaskContinuationOptions no válido.

El elemento proporcionado CancellationToken ya se ha eliminado.

Comentarios

NotOn* y OnlyOn* TaskContinuationOptions, que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny.

Consulte también

Se aplica a

ContinueWhenAny(Task[], Action<Task>)

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationAction
Action<Task>

Delegado de acción que se va a ejecutar cuando se completa una tarea de la tasks matriz.

Devoluciones

Nueva continuación Task.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

La tasks matriz es null.

O bien

El continuationAction argumento es null.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

Ejemplos

En el ejemplo siguiente se muestra cómo usar ContinueWhenAny y 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

Consulte también

Se aplica a

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationAction
Action<Task>

Delegado de acción que se va a ejecutar cuando se completa una tarea de la tasks matriz.

cancellationToken
CancellationToken

que CancellationToken se asignará a la nueva tarea de continuación.

Devoluciones

Nueva continuación Task.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

O bien

cancellationToken ya se ha eliminado.

La tasks matriz es null.

O bien

El continuationAction argumento es null.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

Consulte también

Se aplica a

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado del antecedente tasks.

TResult

Tipo del resultado devuelto por el continuationFunction delegado y asociado al objeto creado Task<TResult>.

Parámetros

tasks
Task<TAntecedentResult>[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Delegado de función que se va a ejecutar de forma asincrónica cuando se completa una tarea de la tasks matriz.

continuationOptions
TaskContinuationOptions

Valor TaskContinuationOptions que controla el comportamiento de la continuación Task<TResult>creada.

Devoluciones

Nueva continuación Task<TResult>.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

La tasks matriz es null.

O bien

continuationFunction es null.

continuationOptions especifica un valor TaskContinuationOptions no válido.

La tasks matriz contiene un valor NULL.

O bien

La tasks matriz está vacía.

Comentarios

NotOn* y OnlyOn* TaskContinuationOptions, que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny.

Consulte también

Se aplica a

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado del antecedente tasks.

TResult

Tipo del resultado devuelto por el continuationFunction delegado y asociado al objeto creado Task<TResult>.

Parámetros

tasks
Task<TAntecedentResult>[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Delegado de función que se va a ejecutar de forma asincrónica cuando se completa una tarea de la tasks matriz.

Devoluciones

Nueva continuación Task<TResult>.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

La tasks matriz es null.

O bien

continuationFunction es null.

La tasks matriz contiene un valor NULL.

O bien

La tasks matriz está vacía.

Consulte también

Se aplica a

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado del antecedente tasks.

TResult

Tipo del resultado devuelto por el continuationFunction delegado y asociado al objeto creado Task<TResult>.

Parámetros

tasks
Task<TAntecedentResult>[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Delegado de función que se va a ejecutar de forma asincrónica cuando se completa una tarea de la tasks matriz.

cancellationToken
CancellationToken

que CancellationToken se asignará a la nueva tarea de continuación.

Devoluciones

Nueva continuación Task<TResult>.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

O bien

El elemento proporcionado CancellationToken ya se ha eliminado.

La tasks matriz es null.

O bien

continuationFunction es null.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

Consulte también

Se aplica a

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado del antecedente tasks.

TResult

Tipo del resultado devuelto por el continuationFunction delegado y asociado al objeto creado Task<TResult>.

Parámetros

tasks
Task<TAntecedentResult>[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Delegado de función que se va a ejecutar de forma asincrónica cuando se completa una tarea de la tasks matriz.

cancellationToken
CancellationToken

que CancellationToken se asignará a la nueva tarea de continuación.

continuationOptions
TaskContinuationOptions

Valor TaskContinuationOptions que controla el comportamiento de la continuación Task<TResult>creada.

scheduler
TaskScheduler

TaskScheduler que se usa para programar la continuación Task<TResult>creada.

Devoluciones

Nueva continuación Task<TResult>.

Excepciones

La tasks matriz es null.

O bien

continuationFunction es null.

O bien

scheduler es null.

La tasks matriz contiene un valor NULL.

O bien

La tasks matriz está vacía.

continuationOptions especifica un valor TaskContinuationOptions no válido.

El elemento proporcionado CancellationToken ya se ha eliminado.

Comentarios

NotOn* y OnlyOn* TaskContinuationOptions, que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny.

Consulte también

Se aplica a

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado del antecedente tasks.

Parámetros

tasks
Task<TAntecedentResult>[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationAction
Action<Task<TAntecedentResult>>

Delegado de acción que se va a ejecutar cuando se completa una tarea de la tasks matriz.

Devoluciones

Nueva continuación Task.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

La tasks matriz es null.

O bien

continuationAction es null.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

Consulte también

Se aplica a

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado del antecedente tasks.

Parámetros

tasks
Task<TAntecedentResult>[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationAction
Action<Task<TAntecedentResult>>

Delegado de acción que se va a ejecutar cuando se completa una tarea de la tasks matriz.

cancellationToken
CancellationToken

que CancellationToken se asignará a la nueva tarea de continuación.

Devoluciones

Nueva continuación Task.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

O bien

El elemento proporcionado CancellationToken ya se ha eliminado.

La tasks matriz es null.

O bien

continuationAction es null.

La tasks matriz contiene un valor NULL.

O bien

La tasks matriz está vacía.

Consulte también

Se aplica a

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado del antecedente tasks.

Parámetros

tasks
Task<TAntecedentResult>[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationAction
Action<Task<TAntecedentResult>>

Delegado de acción que se va a ejecutar cuando se completa una tarea de la tasks matriz.

continuationOptions
TaskContinuationOptions

Valor TaskContinuationOptions que controla el comportamiento de la continuación Taskcreada.

Devoluciones

Nueva continuación Task.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

La tasks matriz es null.

O bien

continuationAction es null.

continuationOptions especifica un valor TaskContinuationOptions no válido.

La tasks matriz contiene un valor NULL.

O bien

La tasks matriz está vacía.

Comentarios

NotOn* y OnlyOn* TaskContinuationOptions, que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny.

Consulte también

Se aplica a

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

Crea una continuación Task que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado del antecedente tasks.

Parámetros

tasks
Task<TAntecedentResult>[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationAction
Action<Task<TAntecedentResult>>

Delegado de acción que se va a ejecutar cuando se completa una tarea de la tasks matriz.

cancellationToken
CancellationToken

que CancellationToken se asignará a la nueva tarea de continuación.

continuationOptions
TaskContinuationOptions

Valor TaskContinuationOptions que controla el comportamiento de la continuación Taskcreada.

scheduler
TaskScheduler

TaskScheduler que se usa para programar la continuación Task<TResult>creada.

Devoluciones

Nueva continuación Task.

Excepciones

La tasks matriz es null.

O bien

continuationAction es null.

O bien

paramref name="scheduler" /> es null.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

continuationOptions especifica un valor no válido TaskContinuationOptions .

El elemento proporcionado CancellationToken ya se ha eliminado.

Comentarios

NotOn* y OnlyOn* TaskContinuationOptions, que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny.

Consulte también

Se aplica a

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado devuelto por el continuationFunction delegado y asociado al objeto creado Task<TResult>.

Parámetros

tasks
Task[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationFunction
Func<Task,TResult>

Delegado de función que se va a ejecutar de forma asincrónica cuando se completa una tarea de la tasks matriz.

Devoluciones

Nueva continuación Task<TResult>.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

La tasks matriz es null.

O bien

continuationFunction es null.

La tasks matriz contiene un valor NULL.

O bien

La tasks matriz está vacía.

Consulte también

Se aplica a

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado devuelto por el continuationFunction delegado y asociado al objeto creado Task<TResult>.

Parámetros

tasks
Task[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationFunction
Func<Task,TResult>

Delegado de función que se va a ejecutar de forma asincrónica cuando se completa una tarea de la tasks matriz.

cancellationToken
CancellationToken

que CancellationToken se asignará a la nueva tarea de continuación.

Devoluciones

Nueva continuación Task<TResult>.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

O bien

El elemento proporcionado CancellationToken ya se ha eliminado.

La tasks matriz es null.

O bien

continuationFunction es null.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

Consulte también

Se aplica a

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado devuelto por el continuationFunction delegado y asociado al objeto creado Task<TResult>.

Parámetros

tasks
Task[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationFunction
Func<Task,TResult>

Delegado de función que se va a ejecutar de forma asincrónica cuando se completa una tarea de la tasks matriz.

continuationOptions
TaskContinuationOptions

Valor TaskContinuationOptions que controla el comportamiento de la continuación Task<TResult>creada.

Devoluciones

Nueva continuación Task<TResult>.

Excepciones

Se ha eliminado uno de los elementos de la tasks matriz.

La tasks matriz es null.

O bien

continuationFunction es null.

continuationOptions especifica un valor TaskContinuationOptions no válido.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

Comentarios

NotOn* y OnlyOn* TaskContinuationOptions, que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny.

Consulte también

Se aplica a

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

Crea una continuación Task<TResult> que se iniciará tras la finalización de cualquier tarea del conjunto proporcionado.

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

Tipo del resultado devuelto por el continuationFunction delegado y asociado al objeto creado Task<TResult>.

Parámetros

tasks
Task[]

Matriz de tareas desde las que se va a continuar cuando se completa una tarea.

continuationFunction
Func<Task,TResult>

Delegado de función que se va a ejecutar de forma asincrónica cuando se completa una tarea de la tasks matriz.

cancellationToken
CancellationToken

que CancellationToken se asignará a la nueva tarea de continuación.

continuationOptions
TaskContinuationOptions

Valor TaskContinuationOptions que controla el comportamiento de la continuación Task<TResult>creada.

scheduler
TaskScheduler

TaskScheduler que se usa para programar la continuación Task<TResult>creada.

Devoluciones

Nueva continuación Task<TResult>.

Excepciones

La tasks matriz es null.

O bien

continuationFunction es null.

O bien

scheduler es null.

La tasks matriz contiene un null valor.

O bien

La tasks matriz está vacía.

continuationOptions especifica un valor TaskContinuationOptions no válido.

El elemento proporcionado CancellationToken ya se ha eliminado.

Comentarios

NotOn* y OnlyOn* TaskContinuationOptions, que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny.

Consulte también

Se aplica a