Condividi tramite


TaskFactory.ContinueWhenAny Metodo

Definizione

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

Overload

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

ContinueWhenAny(Task[], Action<Task>)

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Parametri

tasks
Task[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationAction
Action<Task>

Delegato dell'azione da eseguire al completamento di una delle attività nella matrice tasks.

continuationOptions
TaskContinuationOptions

Valore di TaskContinuationOptions che controlla il comportamento dell'oggetto Task di continuazione creato.

Restituisce

Task

Nuovo oggetto Task di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

La matrice tasks è null.

-oppure- continuationAction è null.

continuationOptions specifica un valore TaskContinuationOptions non valido.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

Commenti

NotOn* e OnlyOn TaskContinuationOptions* , che vincola per cui TaskStatus verrà eseguita una continuazione, sono illegali con ContinueWhenAny.

Vedi anche

Si applica a

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Parametri

tasks
Task[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationAction
Action<Task>

Delegato dell'azione da eseguire al completamento di una delle attività nella matrice tasks.

cancellationToken
CancellationToken

Oggetto CancellationToken che verrà assegnato alla nuova attività di continuazione.

continuationOptions
TaskContinuationOptions

Valore di TaskContinuationOptions che controlla il comportamento dell'oggetto Task di continuazione creato.

scheduler
TaskScheduler

Oggetto TaskScheduler utilizzato per pianificare l'oggetto Task di continuazione creato.

Restituisce

Task

Nuovo oggetto Task di continuazione.

Eccezioni

La matrice tasks è null.

-oppure- continuationAction è null.

-oppure- scheduler è null.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

continuationOptions specifica un valore TaskContinuationOptions non valido.

Provider CancellationToken già eliminato.

Commenti

NotOn* e OnlyOn TaskContinuationOptions* , che vincola per cui TaskStatus verrà eseguita una continuazione, sono illegali con ContinueWhenAny.

Vedi anche

Si applica a

ContinueWhenAny(Task[], Action<Task>)

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Parametri

tasks
Task[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationAction
Action<Task>

Delegato dell'azione da eseguire al completamento di una delle attività nella matrice tasks.

Restituisce

Task

Nuovo oggetto Task di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

La matrice tasks è null.

-oppure- Il valore dell'argomento continuationAction è null.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

Esempio

Nell'esempio seguente viene illustrato come usare 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

Vedi anche

Si applica a

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Parametri

tasks
Task[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationAction
Action<Task>

Delegato dell'azione da eseguire al completamento di una delle attività nella matrice tasks.

cancellationToken
CancellationToken

Oggetto CancellationToken che verrà assegnato alla nuova attività di continuazione.

Restituisce

Task

Nuovo oggetto Task di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

-oppure- cancellationToken è già stato eliminato.

La matrice tasks è null.

-oppure- Il valore dell'argomento continuationAction è null.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

Vedi anche

Si applica a

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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)

Parametri di tipo

TAntecedentResult

Tipo del risultato degli oggetti tasks precedenti.

TResult

Tipo del risultato restituito dal delegato di continuationFunction e associato all'oggetto Task<TResult> creato.

Parametri

tasks
Task<TAntecedentResult>[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Delegato della funzione da eseguire in modo asincrono quando una delle attività nella matrice tasks viene completata.

continuationOptions
TaskContinuationOptions

Valore di TaskContinuationOptions che controlla il comportamento dell'oggetto Task<TResult> di continuazione creato.

Restituisce

Task<TResult>

Nuovo oggetto Task<TResult> di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

La matrice tasks è null.

-oppure- continuationFunction è null.

continuationOptions specifica un valore TaskContinuationOptions non valido.

La matrice tasks contiene un valore null.

-oppure- La matrice tasks è vuota.

Commenti

NotOn* e OnlyOn TaskContinuationOptions* , che vincolano per i quali TaskStatus verrà eseguita una continuazione, non sono validi con ContinueWhenAny.

Vedi anche

Si applica a

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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)

Parametri di tipo

TAntecedentResult

Tipo del risultato degli oggetti tasks precedenti.

TResult

Tipo del risultato restituito dal delegato di continuationFunction e associato all'oggetto Task<TResult> creato.

Parametri

tasks
Task<TAntecedentResult>[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Delegato della funzione da eseguire in modo asincrono quando una delle attività nella matrice tasks viene completata.

Restituisce

Task<TResult>

Nuovo oggetto Task<TResult> di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

La matrice tasks è null.

-oppure- continuationFunction è null.

La matrice tasks contiene un valore null.

-oppure- La matrice tasks è vuota.

Vedi anche

Si applica a

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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)

Parametri di tipo

TAntecedentResult

Tipo del risultato degli oggetti tasks precedenti.

TResult

Tipo del risultato restituito dal delegato di continuationFunction e associato all'oggetto Task<TResult> creato.

Parametri

tasks
Task<TAntecedentResult>[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Delegato della funzione da eseguire in modo asincrono quando una delle attività nella matrice tasks viene completata.

cancellationToken
CancellationToken

Oggetto CancellationToken che verrà assegnato alla nuova attività di continuazione.

Restituisce

Task<TResult>

Nuovo oggetto Task<TResult> di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

-oppure- Provider CancellationToken già eliminato.

La matrice tasks è null.

-oppure- continuationFunction è null.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

Vedi anche

Si applica a

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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)

Parametri di tipo

TAntecedentResult

Tipo del risultato degli oggetti tasks precedenti.

TResult

Tipo del risultato restituito dal delegato di continuationFunction e associato all'oggetto Task<TResult> creato.

Parametri

tasks
Task<TAntecedentResult>[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationFunction
Func<Task<TAntecedentResult>,TResult>

Delegato della funzione da eseguire in modo asincrono quando una delle attività nella matrice tasks viene completata.

cancellationToken
CancellationToken

Oggetto CancellationToken che verrà assegnato alla nuova attività di continuazione.

continuationOptions
TaskContinuationOptions

Valore di TaskContinuationOptions che controlla il comportamento dell'oggetto Task<TResult> di continuazione creato.

scheduler
TaskScheduler

Oggetto TaskScheduler utilizzato per pianificare l'oggetto Task<TResult> di continuazione creato.

Restituisce

Task<TResult>

Nuovo oggetto Task<TResult> di continuazione.

Eccezioni

La matrice tasks è null.

-oppure- continuationFunction è null.

-oppure- scheduler è null.

La matrice tasks contiene un valore null.

-oppure- La matrice tasks è vuota.

continuationOptions specifica un valore TaskContinuationOptions non valido.

Provider CancellationToken già eliminato.

Commenti

NotOn* e OnlyOn TaskContinuationOptions* , che vincolano per i quali TaskStatus verrà eseguita una continuazione, non sono validi con ContinueWhenAny.

Vedi anche

Si applica a

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Parametri di tipo

TAntecedentResult

Tipo del risultato degli oggetti tasks precedenti.

Parametri

tasks
Task<TAntecedentResult>[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationAction
Action<Task<TAntecedentResult>>

Delegato dell'azione da eseguire al completamento di una delle attività nella matrice tasks.

Restituisce

Task

Nuovo oggetto Task di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

La matrice tasks è null.

-oppure- continuationAction è null.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

Vedi anche

Si applica a

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Parametri di tipo

TAntecedentResult

Tipo del risultato degli oggetti tasks precedenti.

Parametri

tasks
Task<TAntecedentResult>[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationAction
Action<Task<TAntecedentResult>>

Delegato dell'azione da eseguire al completamento di una delle attività nella matrice tasks.

cancellationToken
CancellationToken

Oggetto CancellationToken che verrà assegnato alla nuova attività di continuazione.

Restituisce

Task

Nuovo oggetto Task di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

-oppure- Provider CancellationToken già eliminato.

La matrice tasks è null.

-oppure- continuationAction è null.

La matrice tasks contiene un valore null.

-oppure- La matrice tasks è vuota.

Vedi anche

Si applica a

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Parametri di tipo

TAntecedentResult

Tipo del risultato degli oggetti tasks precedenti.

Parametri

tasks
Task<TAntecedentResult>[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationAction
Action<Task<TAntecedentResult>>

Delegato dell'azione da eseguire al completamento di una delle attività nella matrice tasks.

continuationOptions
TaskContinuationOptions

Valore di TaskContinuationOptions che controlla il comportamento dell'oggetto Task di continuazione creato.

Restituisce

Task

Nuovo oggetto Task di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

La matrice tasks è null.

-oppure- continuationAction è null.

continuationOptions specifica un valore TaskContinuationOptions non valido.

La matrice tasks contiene un valore null.

-oppure- La matrice tasks è vuota.

Commenti

NotOn* e OnlyOn TaskContinuationOptions* , che vincola per cui TaskStatus verrà eseguita una continuazione, sono illegali con ContinueWhenAny.

Vedi anche

Si applica a

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

Crea un oggetto Task di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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

Parametri di tipo

TAntecedentResult

Tipo del risultato degli oggetti tasks precedenti.

Parametri

tasks
Task<TAntecedentResult>[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationAction
Action<Task<TAntecedentResult>>

Delegato dell'azione da eseguire al completamento di una delle attività nella matrice tasks.

cancellationToken
CancellationToken

Oggetto CancellationToken che verrà assegnato alla nuova attività di continuazione.

continuationOptions
TaskContinuationOptions

Valore di TaskContinuationOptions che controlla il comportamento dell'oggetto Task di continuazione creato.

scheduler
TaskScheduler

Oggetto TaskScheduler utilizzato per pianificare l'oggetto Task<TResult> di continuazione creato.

Restituisce

Task

Nuovo oggetto Task di continuazione.

Eccezioni

La matrice tasks è null.

-oppure- continuationAction è null.

-oppure- paramref name="scheduler" /> è null.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

continuationOptions specifica un valore TaskContinuationOptions non valido.

Provider CancellationToken già eliminato.

Commenti

NotOn* e OnlyOn TaskContinuationOptions* , che vincola per cui TaskStatus verrà eseguita una continuazione, sono illegali con ContinueWhenAny.

Vedi anche

Si applica a

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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)

Parametri di tipo

TResult

Tipo del risultato restituito dal delegato di continuationFunction e associato all'oggetto Task<TResult> creato.

Parametri

tasks
Task[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationFunction
Func<Task,TResult>

Delegato della funzione da eseguire in modo asincrono quando una delle attività nella matrice tasks viene completata.

Restituisce

Task<TResult>

Nuovo oggetto Task<TResult> di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

La matrice tasks è null.

-oppure- continuationFunction è null.

La matrice tasks contiene un valore null.

-oppure- La matrice tasks è vuota.

Vedi anche

Si applica a

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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)

Parametri di tipo

TResult

Tipo del risultato restituito dal delegato di continuationFunction e associato all'oggetto Task<TResult> creato.

Parametri

tasks
Task[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationFunction
Func<Task,TResult>

Delegato della funzione da eseguire in modo asincrono quando una delle attività nella matrice tasks viene completata.

cancellationToken
CancellationToken

Oggetto CancellationToken che verrà assegnato alla nuova attività di continuazione.

Restituisce

Task<TResult>

Nuovo oggetto Task<TResult> di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

-oppure- Provider CancellationToken già eliminato.

La matrice tasks è null.

-oppure- continuationFunction è null.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

Vedi anche

Si applica a

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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)

Parametri di tipo

TResult

Tipo del risultato restituito dal delegato di continuationFunction e associato all'oggetto Task<TResult> creato.

Parametri

tasks
Task[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationFunction
Func<Task,TResult>

Delegato della funzione da eseguire in modo asincrono quando una delle attività nella matrice tasks viene completata.

continuationOptions
TaskContinuationOptions

Valore di TaskContinuationOptions che controlla il comportamento dell'oggetto Task<TResult> di continuazione creato.

Restituisce

Task<TResult>

Nuovo oggetto Task<TResult> di continuazione.

Eccezioni

Uno degli elementi nella matrice tasks è stato eliminato.

La matrice tasks è null.

-oppure- continuationFunction è null.

continuationOptions specifica un valore TaskContinuationOptions non valido.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

Commenti

NotOn* e OnlyOn TaskContinuationOptions* , che vincola per cui TaskStatus verrà eseguita una continuazione, sono illegali con ContinueWhenAny.

Vedi anche

Si applica a

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

Crea un oggetto Task<TResult> di continuazione che verrà avviato al completamento di una delle attività nel set fornito.

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)

Parametri di tipo

TResult

Tipo del risultato restituito dal delegato di continuationFunction e associato all'oggetto Task<TResult> creato.

Parametri

tasks
Task[]

Matrice di attività da cui continuare al completamento di un'attività.

continuationFunction
Func<Task,TResult>

Delegato della funzione da eseguire in modo asincrono quando una delle attività nella matrice tasks viene completata.

cancellationToken
CancellationToken

Oggetto CancellationToken che verrà assegnato alla nuova attività di continuazione.

continuationOptions
TaskContinuationOptions

Valore di TaskContinuationOptions che controlla il comportamento dell'oggetto Task<TResult> di continuazione creato.

scheduler
TaskScheduler

Oggetto TaskScheduler utilizzato per pianificare l'oggetto Task<TResult> di continuazione creato.

Restituisce

Task<TResult>

Nuovo oggetto Task<TResult> di continuazione.

Eccezioni

La matrice tasks è null.

-oppure- continuationFunction è null.

-oppure- scheduler è null.

La matrice tasks contiene un valore di null.

-oppure- La matrice tasks è vuota.

continuationOptions specifica un valore TaskContinuationOptions non valido.

Provider CancellationToken già eliminato.

Commenti

NotOn* e OnlyOn TaskContinuationOptions* , che vincola per cui TaskStatus verrà eseguita una continuazione, sono illegali con ContinueWhenAny.

Vedi anche

Si applica a