TaskFactory.ContinueWhenAny Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.
Sobrecargas
ContinueWhenAny(Task[], Action<Task>, TaskContinuationOptions) |
Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny(Task[], Action<Task>) |
Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny(Task[], Action<Task>, CancellationToken) |
Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, TaskContinuationOptions) |
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>) |
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken) |
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>) |
Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken) |
Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions) |
Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>) |
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken) |
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, TaskContinuationOptions) |
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler) |
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado. |
ContinueWhenAny(Task[], Action<Task>, TaskContinuationOptions)
Crea un objeto Task de continuación que se iniciará cuando se complete 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 la que se va a continuar cuando se complete una tarea.
Delegado de acción que se va a ejecutar cuando se complete una tarea de la matriz tasks
.
- continuationOptions
- TaskContinuationOptions
Valor de TaskContinuationOptions que controla el comportamiento del objeto Task de continuación creado.
Devoluciones
Nuevo objeto Task de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
continuationOptions
especifica un valor TaskContinuationOptions no válido.
Comentarios
NotOn* y OnlyOn TaskContinuationOptions* , que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny
.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Crea un objeto Task de continuación que se iniciará cuando se complete 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 la que se va a continuar cuando se complete una tarea.
Delegado de acción que se va a ejecutar cuando se complete una tarea de la matriz tasks
.
- cancellationToken
- CancellationToken
El CancellationToken que se asignará a la nueva tarea de continuación.
- continuationOptions
- TaskContinuationOptions
Valor de TaskContinuationOptions que controla el comportamiento del objeto Task de continuación creado.
- scheduler
- TaskScheduler
Objeto TaskScheduler que se usa para programar el objeto Task de continuación creado.
Devoluciones
Nuevo objeto Task de continuación.
Excepciones
La matriz tasks
está null
.
O bien
continuationAction
es null
.
O bien
scheduler
es null
.
continuationOptions
especifica un valor TaskContinuationOptions no válido.
Ya se eliminó el CancellationToken proporcionado.
Comentarios
NotOn* y OnlyOn TaskContinuationOptions* , que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny
.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny(Task[], Action<Task>)
Crea un objeto Task de continuación que se iniciará cuando se complete 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 la que se va a continuar cuando se complete una tarea.
Delegado de acción que se va a ejecutar cuando se complete una tarea de la matriz tasks
.
Devoluciones
Nuevo objeto Task de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
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
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny(Task[], Action<Task>, CancellationToken)
Crea un objeto Task de continuación que se iniciará cuando se complete 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 la que se va a continuar cuando se complete una tarea.
Delegado de acción que se va a ejecutar cuando se complete una tarea de la matriz tasks
.
- cancellationToken
- CancellationToken
El CancellationToken que se asignará a la nueva tarea de continuación.
Devoluciones
Nuevo objeto Task de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
O bien
cancellationToken
ya se ha eliminado.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, TaskContinuationOptions)
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete 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 parámetro tasks
precedente.
- TResult
Tipo del resultado devuelto por el delegado de continuationFunction
y asociado al objeto Task<TResult> creado.
Parámetros
- tasks
- Task<TAntecedentResult>[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de función que se va a ejecutar asincrónicamente cuando se complete una tarea de la matriz tasks
.
- continuationOptions
- TaskContinuationOptions
Valor de TaskContinuationOptions que controla el comportamiento del objeto Task<TResult> de continuación creado.
Devoluciones
Nuevo objeto Task<TResult> de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
continuationOptions
especifica un valor TaskContinuationOptions no válido.
Comentarios
NotOn* y OnlyOn TaskContinuationOptions* , que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny
.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>)
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete 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 parámetro tasks
precedente.
- TResult
Tipo del resultado devuelto por el delegado de continuationFunction
y asociado al objeto Task<TResult> creado.
Parámetros
- tasks
- Task<TAntecedentResult>[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de función que se va a ejecutar asincrónicamente cuando se complete una tarea de la matriz tasks
.
Devoluciones
Nuevo objeto Task<TResult> de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken)
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete 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 parámetro tasks
precedente.
- TResult
Tipo del resultado devuelto por el delegado de continuationFunction
y asociado al objeto Task<TResult> creado.
Parámetros
- tasks
- Task<TAntecedentResult>[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de función que se va a ejecutar asincrónicamente cuando se complete una tarea de la matriz tasks
.
- cancellationToken
- CancellationToken
El CancellationToken que se asignará a la nueva tarea de continuación.
Devoluciones
Nuevo objeto Task<TResult> de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
O bien Ya se eliminó el CancellationToken proporcionado.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete 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 parámetro tasks
precedente.
- TResult
Tipo del resultado devuelto por el delegado de continuationFunction
y asociado al objeto Task<TResult> creado.
Parámetros
- tasks
- Task<TAntecedentResult>[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de función que se va a ejecutar asincrónicamente cuando se complete una tarea de la matriz tasks
.
- cancellationToken
- CancellationToken
El CancellationToken que se asignará a la nueva tarea de continuación.
- continuationOptions
- TaskContinuationOptions
Valor de TaskContinuationOptions que controla el comportamiento del objeto Task<TResult> de continuación creado.
- scheduler
- TaskScheduler
Objeto TaskScheduler que se usa para programar el objeto Task<TResult> de continuación creado.
Devoluciones
Nuevo objeto Task<TResult> de continuación.
Excepciones
La matriz tasks
está null
.
O bien
continuationFunction
es null
.
O bien
scheduler
es null
.
continuationOptions
especifica un valor TaskContinuationOptions no válido.
Ya se eliminó el CancellationToken proporcionado.
Comentarios
NotOn* y OnlyOn TaskContinuationOptions* , que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny
.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>)
Crea un objeto Task de continuación que se iniciará cuando se complete 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 parámetro tasks
precedente.
Parámetros
- tasks
- Task<TAntecedentResult>[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de acción que se va a ejecutar cuando se complete una tarea de la matriz tasks
.
Devoluciones
Nuevo objeto Task de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken)
Crea un objeto Task de continuación que se iniciará cuando se complete 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 parámetro tasks
precedente.
Parámetros
- tasks
- Task<TAntecedentResult>[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de acción que se va a ejecutar cuando se complete una tarea de la matriz tasks
.
- cancellationToken
- CancellationToken
El CancellationToken que se asignará a la nueva tarea de continuación.
Devoluciones
Nuevo objeto Task de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
O bien Ya se eliminó el CancellationToken proporcionado.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions)
Crea un objeto Task de continuación que se iniciará cuando se complete 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 parámetro tasks
precedente.
Parámetros
- tasks
- Task<TAntecedentResult>[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de acción que se va a ejecutar cuando se complete una tarea de la matriz tasks
.
- continuationOptions
- TaskContinuationOptions
Valor de TaskContinuationOptions que controla el comportamiento del objeto Task de continuación creado.
Devoluciones
Nuevo objeto Task de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
continuationOptions
especifica un valor TaskContinuationOptions no válido.
Comentarios
NotOn* y OnlyOn TaskContinuationOptions* , que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny
.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Crea un objeto Task de continuación que se iniciará cuando se complete 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 parámetro tasks
precedente.
Parámetros
- tasks
- Task<TAntecedentResult>[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de acción que se va a ejecutar cuando se complete una tarea de la matriz tasks
.
- cancellationToken
- CancellationToken
El CancellationToken que se asignará a la nueva tarea de continuación.
- continuationOptions
- TaskContinuationOptions
Valor de TaskContinuationOptions que controla el comportamiento del objeto Task de continuación creado.
- scheduler
- TaskScheduler
Objeto TaskScheduler que se usa para programar el objeto Task<TResult> de continuación creado.
Devoluciones
Nuevo objeto Task de continuación.
Excepciones
La matriz tasks
está null
.
O bien
continuationAction
es null
.
O bien
paramref name="scheduler" /> es null
.
continuationOptions
especifica un valor TaskContinuationOptions no válido.
Ya se eliminó el CancellationToken proporcionado.
Comentarios
NotOn* y OnlyOn TaskContinuationOptions* , que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny
.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>)
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete 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 delegado de continuationFunction
y asociado al objeto Task<TResult> creado.
Parámetros
- tasks
- Task[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de función que se va a ejecutar asincrónicamente cuando se complete una tarea de la matriz tasks
.
Devoluciones
Nuevo objeto Task<TResult> de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken)
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete 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 delegado de continuationFunction
y asociado al objeto Task<TResult> creado.
Parámetros
- tasks
- Task[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de función que se va a ejecutar asincrónicamente cuando se complete una tarea de la matriz tasks
.
- cancellationToken
- CancellationToken
El CancellationToken que se asignará a la nueva tarea de continuación.
Devoluciones
Nuevo objeto Task<TResult> de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
O bien Ya se eliminó el CancellationToken proporcionado.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, TaskContinuationOptions)
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete 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 delegado de continuationFunction
y asociado al objeto Task<TResult> creado.
Parámetros
- tasks
- Task[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de función que se va a ejecutar asincrónicamente cuando se complete una tarea de la matriz tasks
.
- continuationOptions
- TaskContinuationOptions
Valor de TaskContinuationOptions que controla el comportamiento del objeto Task<TResult> de continuación creado.
Devoluciones
Nuevo objeto Task<TResult> de continuación.
Excepciones
Uno de los elementos de la matriz tasks
se ha eliminado.
continuationOptions
especifica un valor TaskContinuationOptions no válido.
Comentarios
NotOn* y OnlyOn TaskContinuationOptions* , que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny
.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas
Se aplica a
ContinueWhenAny<TResult>(Task[], Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete 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 delegado de continuationFunction
y asociado al objeto Task<TResult> creado.
Parámetros
- tasks
- Task[]
Matriz de tareas desde la que se va a continuar cuando se complete una tarea.
Delegado de función que se va a ejecutar asincrónicamente cuando se complete una tarea de la matriz tasks
.
- cancellationToken
- CancellationToken
El CancellationToken que se asignará a la nueva tarea de continuación.
- continuationOptions
- TaskContinuationOptions
Valor de TaskContinuationOptions que controla el comportamiento del objeto Task<TResult> de continuación creado.
- scheduler
- TaskScheduler
Objeto TaskScheduler que se usa para programar el objeto Task<TResult> de continuación creado.
Devoluciones
Nuevo objeto Task<TResult> de continuación.
Excepciones
La matriz tasks
está null
.
O bien
continuationFunction
es null
.
O bien
scheduler
es null
.
continuationOptions
especifica un valor TaskContinuationOptions no válido.
Ya se eliminó el CancellationToken proporcionado.
Comentarios
NotOn* y OnlyOn TaskContinuationOptions* , que restringen para qué TaskStatus estados se ejecutará una continuación, son ilegales con ContinueWhenAny
.
Consulte también
- Biblioteca de procesamiento paralelo basado en tareas (TPL)
- Encadenar tareas mediante tareas de continuación
- Cancelación de tareas