TaskFactory.ContinueWhenAll Método

Definição

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

Sobrecargas

ContinueWhenAll(Task[], Action<Task[]>)

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

ContinueWhenAll(Task[], Action<Task[]>)

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task ContinueWhenAll (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task[]> continuationAction);

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar.

continuationAction
Action<Task[]>

O delegado de ação a ser executado quando todas as tarefas na matriz do tasks estiverem concluídas.

Retornos

Task

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

A matriz do tasks está vazia ou contém um valor nulo.

Exemplos

O exemplo a seguir inicia tarefas separadas que usam uma expressão regular para contar o número de palavras em um conjunto de arquivos de texto. O ContinueWhenAll método é usado para iniciar uma tarefa que exibe a contagem total de palavras quando todas as tarefas antecedentes são concluídas.

using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] filenames = { "chapter1.txt", "chapter2.txt", 
                             "chapter3.txt", "chapter4.txt",
                             "chapter5.txt" };
      string pattern = @"\b\w+\b";
      var tasks = new List<Task>();  
      int totalWords = 0;
        
      // Determine the number of words in each file.
      foreach (var filename in filenames) 
         tasks.Add( Task.Factory.StartNew( fn => { if (! File.Exists(fn.ToString()))
                                                      throw new FileNotFoundException("{0} does not exist.", filename);

                                                   StreamReader sr = new StreamReader(fn.ToString());
                                                   String content = sr.ReadToEnd();
                                                   sr.Close();
                                                   int words = Regex.Matches(content, pattern).Count;
                                                   Interlocked.Add(ref totalWords, words); 
                                                   Console.WriteLine("{0,-25} {1,6:N0} words", fn, words); }, 
                                           filename));

      var finalTask = Task.Factory.ContinueWhenAll(tasks.ToArray(), wordCountTasks => {
                                                    int nSuccessfulTasks = 0;
                                                    int nFailed = 0;
                                                    int nFileNotFound = 0;
                                                    foreach (var t in wordCountTasks) {
                                                       if (t.Status == TaskStatus.RanToCompletion) 
                                                          nSuccessfulTasks++;
                                                       
                                                       if (t.Status == TaskStatus.Faulted) {
                                                          nFailed++;  
                                                          t.Exception.Handle( (e) => { 
                                                             if (e is FileNotFoundException)
                                                                nFileNotFound++;
                                                             return true;   
                                                          });
                                                       } 
                                                    }   
                                                    Console.WriteLine("\n{0,-25} {1,6} total words\n", 
                                                                      String.Format("{0} files", nSuccessfulTasks), 
                                                                      totalWords); 
                                                    if (nFailed > 0) {
                                                       Console.WriteLine("{0} tasks failed for the following reasons:", nFailed);
                                                       Console.WriteLine("   File not found:    {0}", nFileNotFound);
                                                       if (nFailed != nFileNotFound)
                                                          Console.WriteLine("   Other:          {0}", nFailed - nFileNotFound);
                                                    } 
                                                    });  
      finalTask.Wait();                                                                  
   }
}
// The example displays output like the following:
//       chapter2.txt               1,585 words
//       chapter1.txt               4,012 words
//       chapter5.txt               4,660 words
//       chapter3.txt               7,481 words
//       
//       4 files                    17738 total words
//       
//       1 tasks failed for the following reasons:
//          File not found:    1

A chamada para o método da tarefa de Task.Wait continuação não permite que ela trate exceções geradas pelas tarefas anteriores, portanto, o exemplo examina a Task.Status propriedade de cada tarefa anterior para determinar se a tarefa foi bem-sucedida.

Comentários

O ContinueWhenAll método executa o continuationAction delegado quando todas as tarefas na tasks matriz são concluídas, independentemente de seu status de conclusão.

As exceções geradas por tarefas na tasks matriz não estão disponíveis para a tarefa de continuação por meio do tratamento de exceções estruturados. Você pode determinar quais exceções foram geradas examinando a Task.Exception propriedade de cada tarefa na tasks matriz. Para usar o tratamento de exceções estruturadas para lidar com exceções geradas por tarefas na tasks matriz, chame o Task.WaitAll(Task[]) método.

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task ContinueWhenAll (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task[]> continuationAction, System.Threading.CancellationToken cancellationToken);

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar.

continuationAction
Action<Task[]>

O delegado de ação a ser executado quando todas as tarefas na matriz do tasks estiverem concluídas.

cancellationToken
CancellationToken

O token de cancelamento a ser atribuído à nova tarefa de continuação.

Retornos

Task

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

- ou - O CancellationTokenSource que criou cancellationToken já foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

A matriz do tasks está vazia ou contém um valor nulo.

Exemplos

O exemplo a seguir cria um token de cancelamento, que passa para tarefas separadas que usam uma expressão regular para contar o número de palavras em um conjunto de arquivos de texto. O token de cancelamento será definido se um arquivo não puder ser encontrado. O ContinueWhenAll(Task[], Action{Task[]}, CancellationToken) método é usado para iniciar uma tarefa que exibe a contagem total de palavras quando todas as tarefas precedentes são concluídas. Se o token de cancelamento estiver definido, o que indica que uma ou mais tarefas foram canceladas, ele manipulará a AggregateException exceção e exibirá uma mensagem de erro.

using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] filenames = { "chapter1.txt", "chapter2.txt", 
                             "chapter3.txt", "chapter4.txt",
                             "chapter5.txt" };
      string pattern = @"\b\w+\b";
      var tasks = new List<Task>();  
      CancellationTokenSource source = new CancellationTokenSource();
      CancellationToken token = source.Token;
      int totalWords = 0;
        
      // Determine the number of words in each file.
      foreach (var filename in filenames)
         tasks.Add( Task.Factory.StartNew( fn => { token.ThrowIfCancellationRequested(); 

                                                   if (! File.Exists(fn.ToString())) {
                                                      source.Cancel();
                                                      token.ThrowIfCancellationRequested();
                                                   }
                                                   
                                                   StreamReader sr = new StreamReader(fn.ToString());
                                                   String content = sr.ReadToEnd();
                                                   sr.Close();
                                                   int words = Regex.Matches(content, pattern).Count;
                                                   Interlocked.Add(ref totalWords, words); 
                                                   Console.WriteLine("{0,-25} {1,6:N0} words", fn, words); }, 
                                           filename, token));

      var finalTask = Task.Factory.ContinueWhenAll(tasks.ToArray(), wordCountTasks => {
                                                    if (! token.IsCancellationRequested) 
                                                       Console.WriteLine("\n{0,-25} {1,6} total words\n", 
                                                                         String.Format("{0} files", wordCountTasks.Length), 
                                                                         totalWords); 
                                                   }, token); 
      try {                                                   
         finalTask.Wait();
      }
      catch (AggregateException ae) {
         foreach (Exception inner in ae.InnerExceptions)
            if (inner is TaskCanceledException)
               Console.WriteLine("\nFailure to determine total word count: a task was cancelled.");
            else
               Console.WriteLine("\nFailure caused by {0}", inner.GetType().Name);      
      }
      finally {
         source.Dispose();
      }
   }
}
// The example displays output like the following:
//       chapter2.txt               1,585 words
//       chapter1.txt               4,012 words
//       
//       Failure to determine total word count: a task was cancelled.

Comentários

Esse método executa o continuationAction delegado quando todas as tarefas na tasks matriz são concluídas, independentemente do status de conclusão.

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task ContinueWhenAll (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task[]> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar.

continuationAction
Action<Task[]>

O delegado de ação a ser executado quando todas as tarefas na matriz do tasks estiverem concluídas.

continuationOptions
TaskContinuationOptions

Uma combinação bit a bit dos valores de enumeração que controlam o comportamento da nova tarefa de continuação. Não há suporte para os membros NotOn* e OnlyOn*.

Retornos

Task

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

O argumento continuationOptions especifica um valor inválido.

A matriz do tasks está vazia ou contém um valor nulo.

Comentários

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

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task ContinueWhenAll (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);

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar.

continuationAction
Action<Task[]>

O delegado de ação a ser executado quando todas as tarefas na matriz do tasks estiverem concluídas.

cancellationToken
CancellationToken

O token de cancelamento a ser atribuído à nova tarefa de continuação.

continuationOptions
TaskContinuationOptions

Uma combinação bit a bit dos valores de enumeração que controlam o comportamento da nova tarefa de continuação.

scheduler
TaskScheduler

O objeto que é usado para agendar a nova tarefa de continuação.

Retornos

Task

A nova tarefa de continuação.

Exceções

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

- ou - O argumento scheduler é null.

A matriz do tasks está vazia ou contém um valor nulo.

continuationOptions especifica um valor TaskContinuationOptions inválido.

O CancellationToken fornecido já foi descartado.

Comentários

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

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task<TResult> ContinueWhenAll<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);

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado à tarefa criada.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar.

continuationFunction
Func<Task<TAntecedentResult>[],TResult>

O delegado de função a ser executado de forma assíncrona quando todas as tarefas na matriz tasks forem concluídas.

cancellationToken
CancellationToken

O token de cancelamento a ser atribuído à nova tarefa de continuação.

continuationOptions
TaskContinuationOptions

Uma combinação bit a bit dos valores de enumeração que controlam o comportamento da nova tarefa de continuação. Não há suporte para os membros NotOn* e OnlyOn*.

scheduler
TaskScheduler

O objeto que é usado para agendar a nova tarefa de continuação.

Retornos

Task<TResult>

A nova tarefa de continuação.

Exceções

A matriz do tasks é null.

- ou - O argumento continuationFunction é null.

- ou - O argumento scheduler é null.

A matriz do tasks está vazia ou contém um valor nulo.

O argumento continuationOptions especifica um valor inválido.

Um elemento na matriz do tasks foi descartado.

- ou - O CancellationTokenSource que criou cancellationToken já foi descartado.

Comentários

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

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado à tarefa criada.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar.

continuationFunction
Func<Task<TAntecedentResult>[],TResult>

O delegado de função a ser executado de forma assíncrona quando todas as tarefas na matriz tasks forem concluídas.

continuationOptions
TaskContinuationOptions

Uma combinação bit a bit dos valores de enumeração que controlam o comportamento da nova tarefa de continuação. Não há suporte para os membros NotOn* e OnlyOn*.

Retornos

Task<TResult>

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationFunction é null.

O argumento continuationOptions especifica um valor inválido.

A matriz do tasks está vazia ou contém um valor nulo.

Comentários

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

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult> continuationFunction, System.Threading.CancellationToken cancellationToken);

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado à tarefa criada.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar.

continuationFunction
Func<Task<TAntecedentResult>[],TResult>

O delegado de função a ser executado de forma assíncrona quando todas as tarefas na matriz tasks forem concluídas.

cancellationToken
CancellationToken

O token de cancelamento a ser atribuído à nova tarefa de continuação.

Retornos

Task<TResult>

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

- ou - O CancellationTokenSource que criou cancellationToken já foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationFunction é null.

A matriz do tasks está vazia ou contém um valor nulo.

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult> continuationFunction);

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado à tarefa criada.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar.

continuationFunction
Func<Task<TAntecedentResult>[],TResult>

O delegado de função a ser executado de forma assíncrona quando todas as tarefas na matriz tasks forem concluídas.

Retornos

Task<TResult>

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationFunction é null.

A matriz do tasks está vazia ou contém um valor nulo.

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task ContinueWhenAll<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);

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar.

continuationAction
Action<Task<TAntecedentResult>[]>

O delegado de ação a ser executado quando todas as tarefas na matriz do tasks estiverem concluídas.

cancellationToken
CancellationToken

O token de cancelamento a ser atribuído à nova tarefa de continuação.

continuationOptions
TaskContinuationOptions

Uma combinação bit a bit dos valores de enumeração que controlam o comportamento da nova tarefa de continuação. Não há suporte para os membros NotOn* e OnlyOn*.

scheduler
TaskScheduler

O objeto que é usado para agendar a nova tarefa de continuação.

Retornos

Task

A nova tarefa de continuação.

Exceções

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

- ou - O argumento scheduler é null.

A matriz do tasks está vazia ou contém um valor nulo.

continuationOptions especifica um valor TaskContinuationOptions inválido.

O CancellationToken fornecido já foi descartado.

Comentários

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

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task ContinueWhenAll<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>[]> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar.

continuationAction
Action<Task<TAntecedentResult>[]>

O delegado de ação a ser executado quando todas as tarefas na matriz do tasks estiverem concluídas.

continuationOptions
TaskContinuationOptions

Uma combinação bit a bit dos valores de enumeração que controlam o comportamento da nova tarefa de continuação. Não há suporte para os membros NotOn* e OnlyOn*.

Retornos

Task

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

O argumento continuationOptions especifica um valor inválido.

A matriz do tasks está vazia ou contém um valor nulo.

Comentários

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

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task ContinueWhenAll<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>[]> continuationAction, System.Threading.CancellationToken cancellationToken);

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar.

continuationAction
Action<Task<TAntecedentResult>[]>

O delegado de ação a ser executado quando todas as tarefas na matriz do tasks estiverem concluídas.

cancellationToken
CancellationToken

O token de cancelamento a ser atribuído à nova tarefa de continuação.

Retornos

Task

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

- ou - O CancellationTokenSource que criou cancellationToken já foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

A matriz do tasks está vazia ou contém um valor nulo.

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task ContinueWhenAll<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>[]> continuationAction);

Parâmetros de tipo

TAntecedentResult

O tipo do resultado do antecedente tasks.

Parâmetros

tasks
Task<TAntecedentResult>[]

A matriz de tarefas da qual continuar.

continuationAction
Action<Task<TAntecedentResult>[]>

O delegado de ação a ser executado quando todas as tarefas na matriz do tasks estiverem concluídas.

Retornos

Task

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationAction é null.

A matriz do tasks está vazia ou contém um valor nulo.

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task[],TResult> continuationFunction);

Parâmetros de tipo

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado à tarefa criada.

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar.

continuationFunction
Func<Task[],TResult>

O delegado de função a ser executado de forma assíncrona quando todas as tarefas na matriz tasks forem concluídas.

Retornos

Task<TResult>

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationFunction é null.

A matriz do tasks está vazia ou contém um valor nulo.

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task[],TResult> continuationFunction, System.Threading.CancellationToken cancellationToken);

Parâmetros de tipo

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado à tarefa criada.

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar.

continuationFunction
Func<Task[],TResult>

O delegado de função a ser executado de forma assíncrona quando todas as tarefas na matriz tasks forem concluídas.

cancellationToken
CancellationToken

O token de cancelamento a ser atribuído à nova tarefa de continuação.

Retornos

Task<TResult>

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

- ou - O CancellationTokenSource que criou cancellationToken já foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationFunction é null.

A matriz do tasks está vazia ou contém um valor nulo.

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task[],TResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);

Parâmetros de tipo

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado à tarefa criada.

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar.

continuationFunction
Func<Task[],TResult>

O delegado de função a ser executado de forma assíncrona quando todas as tarefas na matriz tasks forem concluídas.

continuationOptions
TaskContinuationOptions

Uma combinação bit a bit dos valores de enumeração que controlam o comportamento da nova tarefa de continuação. Não há suporte para os membros NotOn* e OnlyOn*.

Retornos

Task<TResult>

A nova tarefa de continuação.

Exceções

Um elemento na matriz do tasks foi descartado.

A matriz do tasks é null.

- ou - O argumento continuationFunction é null.

O argumento continuationOptions especifica um valor inválido.

A matriz do tasks está vazia ou contém um valor nulo.

Comentários

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

Confira também

Aplica-se a

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

Cria uma tarefa de continuação que começa quando um conjunto de tarefas especificadas foi concluído.

public System.Threading.Tasks.Task<TResult> ContinueWhenAll<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);

Parâmetros de tipo

TResult

O tipo do resultado retornado pelo continuationFunction delegado e associado à tarefa criada.

Parâmetros

tasks
Task[]

A matriz de tarefas da qual continuar.

continuationFunction
Func<Task[],TResult>

O delegado de função a ser executado de forma assíncrona quando todas as tarefas na matriz tasks forem concluídas.

cancellationToken
CancellationToken

O token de cancelamento a ser atribuído à nova tarefa de continuação.

continuationOptions
TaskContinuationOptions

Uma combinação bit a bit dos valores de enumeração que controlam o comportamento da nova tarefa de continuação. Não há suporte para os membros NotOn* e OnlyOn*.

scheduler
TaskScheduler

O objeto que é usado para agendar a nova tarefa de continuação.

Retornos

Task<TResult>

A nova tarefa de continuação.

Exceções

A matriz do tasks é null.

- ou - O argumento continuationFunction é null.

- ou - O argumento scheduler é null.

A matriz do tasks está vazia ou contém um valor nulo.

continuationOptions especifica um valor TaskContinuationOptions inválido.

O CancellationToken fornecido já foi descartado.

Comentários

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

Confira também

Aplica-se a