Lire en anglais

Partager via


TaskFactory.ContinueWhenAll Méthode

Définition

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

Surcharges

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Paramètres

tasks
Task[]

Tableau de tâches à partir duquel continuer.

continuationAction
Action<Task[]>

Délégué d’action à exécuter quand toutes les tâches du tableau tasks sont terminées.

Retours

Task

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationAction a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

Exemples

L’exemple suivant lance des tâches distinctes qui utilisent une expression régulière pour compter le nombre de mots dans un ensemble de fichiers texte. La ContinueWhenAll méthode est utilisée pour lancer une tâche qui affiche le nombre total de mots lorsque toutes les tâches antécédentes sont terminées.

C#
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

L’appel à la méthode de la tâche de Task.Wait continuation ne lui permet pas de gérer les exceptions levées par les tâches antécédentes. L’exemple examine donc la Task.Status propriété de chaque tâche antécédente pour déterminer si la tâche a réussi.

Remarques

La ContinueWhenAll méthode exécute le continuationAction délégué lorsque toutes les tâches du tasks tableau sont terminées, quel que soit leur état d’achèvement.

Les exceptions levées par les tâches du tasks tableau ne sont pas disponibles pour la tâche de continuation via la gestion structurée des exceptions. Vous pouvez déterminer quelles exceptions ont été levées en examinant la Task.Exception propriété de chaque tâche dans le tasks tableau. Pour utiliser la gestion structurée des exceptions pour gérer les exceptions levées par des tâches dans le tasks tableau, appelez la Task.WaitAll(Task[]) méthode.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Paramètres

tasks
Task[]

Tableau de tâches à partir duquel continuer.

continuationAction
Action<Task[]>

Délégué d'action à exécuter lorsque toutes les tâches du tableau tasks sont terminées.

cancellationToken
CancellationToken

Jeton d’annulation à associer à la nouvelle tâche de continuation.

Retours

Task

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationAction a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

Exemples

L’exemple suivant crée un jeton d’annulation, qu’il passe à des tâches distinctes qui utilisent une expression régulière pour compter le nombre de mots dans un ensemble de fichiers texte. Le jeton d’annulation est défini si un fichier est introuvable. La ContinueWhenAll(Task[], Action{Task[]}, CancellationToken) méthode est utilisée pour lancer une tâche qui affiche le nombre total de mots lorsque toutes les tâches antécédentes sont terminées. Si le jeton d’annulation est défini, ce qui indique qu’une ou plusieurs tâches ont été annulées, elle gère l’exception AggregateException et affiche un message d’erreur.

C#
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.

Remarques

Cette méthode exécute le continuationAction délégué lorsque toutes les tâches du tasks tableau sont terminées, quel que soit leur état d’achèvement.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Paramètres

tasks
Task[]

Tableau de tâches à partir duquel continuer.

continuationAction
Action<Task[]>

Délégué d’action à exécuter quand toutes les tâches du tableau tasks sont terminées.

continuationOptions
TaskContinuationOptions

Combinaison d'opérations de bits des valeurs d'énumération qui contrôlent le comportement de la nouvelle tâche de continuation. Les membres NotOn* et OnlyOn* ne sont pas pris en charge.

Retours

Task

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationAction a la valeur null.

L'argument continuationOptions spécifie une valeur non valide.

Le tableau tasks est vide ou contient une valeur null.

Remarques

NotOn* et OnlyOnTaskContinuationOptions*, qui limitent l’exécution TaskStatus d’une continuation, sont illégales avec ContinueWhenAll.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

C#
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);

Paramètres

tasks
Task[]

Tableau de tâches à partir duquel continuer.

continuationAction
Action<Task[]>

Délégué d'action à exécuter lorsque toutes les tâches du tableau tasks sont terminées.

cancellationToken
CancellationToken

Jeton d’annulation à associer à la nouvelle tâche de continuation.

continuationOptions
TaskContinuationOptions

Combinaison d'opérations de bits des valeurs d'énumération qui contrôlent le comportement de la nouvelle tâche de continuation.

scheduler
TaskScheduler

Objet utilisé pour planifier la nouvelle tâche de continuation.

Retours

Task

Nouvelle tâche de continuation.

Exceptions

Le tableau tasks a la valeur null.

  • ou - L'argument continuationAction a la valeur null.

  • ou - L'argument scheduler a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

continuationOptions spécifie une valeur de TaskContinuationOptions non valide.

Le CancellationToken fourni a déjà été supprimé.

Remarques

NotOn* et OnlyOnTaskContinuationOptions*, qui limitent l’exécution TaskStatus d’une continuation, sont illégales avec ContinueWhenAll.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

C#
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);

Paramètres de type

TAntecedentResult

Type du résultat du tasks antécédent.

TResult

Type du résultat retourné par le délégué continuationFunction et associé à la tâche créée.

Paramètres

tasks
Task<TAntecedentResult>[]

Tableau de tâches à partir duquel continuer.

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

Délégué de fonction à exécuter en mode asynchrone lorsque toutes les tâches du tableau tasks sont terminées.

cancellationToken
CancellationToken

Jeton d’annulation à associer à la nouvelle tâche de continuation.

continuationOptions
TaskContinuationOptions

Combinaison d'opérations de bits des valeurs d'énumération qui contrôlent le comportement de la nouvelle tâche de continuation. Les membres NotOn* et OnlyOn* ne sont pas pris en charge.

scheduler
TaskScheduler

Objet utilisé pour planifier la nouvelle tâche de continuation.

Retours

Task<TResult>

Nouvelle tâche de continuation.

Exceptions

Le tableau tasks a la valeur null.

  • ou - L'argument continuationFunction a la valeur null.

  • ou - L'argument scheduler a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

L'argument continuationOptions spécifie une valeur non valide.

Un élément du tableau tasks a été supprimé.

Remarques

NotOn* et OnlyOnTaskContinuationOptions*, qui limitent l’exécution TaskStatus d’une continuation, sont illégales avec ContinueWhenAll.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

C#
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);

Paramètres de type

TAntecedentResult

Type du résultat du tasks antécédent.

TResult

Type du résultat retourné par le délégué continuationFunction et associé à la tâche créée.

Paramètres

tasks
Task<TAntecedentResult>[]

Tableau de tâches à partir duquel continuer.

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

Délégué de fonction à exécuter en mode asynchrone quand toutes les tâches du tableau tasks sont terminées.

continuationOptions
TaskContinuationOptions

Combinaison d'opérations de bits des valeurs d'énumération qui contrôlent le comportement de la nouvelle tâche de continuation. Les membres NotOn* et OnlyOn* ne sont pas pris en charge.

Retours

Task<TResult>

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationFunction a la valeur null.

L'argument continuationOptions spécifie une valeur non valide.

Le tableau tasks est vide ou contient une valeur null.

Remarques

NotOn* et OnlyOnTaskContinuationOptions*, qui limitent l’exécution TaskStatus d’une continuation, sont illégales avec ContinueWhenAll.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

C#
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);

Paramètres de type

TAntecedentResult

Type du résultat du tasks antécédent.

TResult

Type du résultat retourné par le délégué continuationFunction et associé à la tâche créée.

Paramètres

tasks
Task<TAntecedentResult>[]

Tableau de tâches à partir duquel continuer.

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

Délégué de fonction à exécuter en mode asynchrone lorsque toutes les tâches du tableau tasks sont terminées.

cancellationToken
CancellationToken

Jeton d’annulation à associer à la nouvelle tâche de continuation.

Retours

Task<TResult>

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationFunction a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Paramètres de type

TAntecedentResult

Type du résultat du tasks antécédent.

TResult

Type du résultat retourné par le délégué continuationFunction et associé à la tâche créée.

Paramètres

tasks
Task<TAntecedentResult>[]

Tableau de tâches à partir duquel continuer.

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

Délégué de fonction à exécuter en mode asynchrone quand toutes les tâches du tableau tasks sont terminées.

Retours

Task<TResult>

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationFunction a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

C#
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);

Paramètres de type

TAntecedentResult

Type du résultat du tasks antécédent.

Paramètres

tasks
Task<TAntecedentResult>[]

Tableau de tâches à partir duquel continuer.

continuationAction
Action<Task<TAntecedentResult>[]>

Délégué d'action à exécuter lorsque toutes les tâches du tableau tasks sont terminées.

cancellationToken
CancellationToken

Jeton d’annulation à associer à la nouvelle tâche de continuation.

continuationOptions
TaskContinuationOptions

Combinaison d'opérations de bits des valeurs d'énumération qui contrôlent le comportement de la nouvelle tâche de continuation. Les membres NotOn* et OnlyOn* ne sont pas pris en charge.

scheduler
TaskScheduler

Objet utilisé pour planifier la nouvelle tâche de continuation.

Retours

Task

Nouvelle tâche de continuation.

Exceptions

Le tableau tasks a la valeur null.

  • ou - L'argument continuationAction a la valeur null.

  • ou - L'argument scheduler a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

continuationOptions spécifie une valeur de TaskContinuationOptions non valide.

Le CancellationToken fourni a déjà été supprimé.

Remarques

NotOn et OnlyOn**TaskContinuationOptions, qui limitent l’exécution TaskStatus d’une continuation, sont illégales avec .ContinueWhenAll

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

C#
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);

Paramètres de type

TAntecedentResult

Type du résultat du tasks antécédent.

Paramètres

tasks
Task<TAntecedentResult>[]

Tableau de tâches à partir duquel continuer.

continuationAction
Action<Task<TAntecedentResult>[]>

Délégué d’action à exécuter quand toutes les tâches du tableau tasks sont terminées.

continuationOptions
TaskContinuationOptions

Combinaison d'opérations de bits des valeurs d'énumération qui contrôlent le comportement de la nouvelle tâche de continuation. Les membres NotOn* et OnlyOn* ne sont pas pris en charge.

Retours

Task

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationAction a la valeur null.

L'argument continuationOptions spécifie une valeur non valide.

Le tableau tasks est vide ou contient une valeur null.

Remarques

NotOn* et OnlyOnTaskContinuationOptions*, qui limitent l’exécution TaskStatus d’une continuation, sont illégales avec ContinueWhenAll.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Paramètres de type

TAntecedentResult

Type du résultat du tasks antécédent.

Paramètres

tasks
Task<TAntecedentResult>[]

Tableau de tâches à partir duquel continuer.

continuationAction
Action<Task<TAntecedentResult>[]>

Délégué d'action à exécuter lorsque toutes les tâches du tableau tasks sont terminées.

cancellationToken
CancellationToken

Jeton d’annulation à associer à la nouvelle tâche de continuation.

Retours

Task

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationAction a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Paramètres de type

TAntecedentResult

Type du résultat du tasks antécédent.

Paramètres

tasks
Task<TAntecedentResult>[]

Tableau de tâches à partir duquel continuer.

continuationAction
Action<Task<TAntecedentResult>[]>

Délégué d’action à exécuter quand toutes les tâches du tableau tasks sont terminées.

Retours

Task

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationAction a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Paramètres de type

TResult

Type du résultat retourné par le délégué continuationFunction et associé à la tâche créée.

Paramètres

tasks
Task[]

Tableau de tâches à partir duquel continuer.

continuationFunction
Func<Task[],TResult>

Délégué de fonction à exécuter en mode asynchrone quand toutes les tâches du tableau tasks sont terminées.

Retours

Task<TResult>

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationFunction a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

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

Paramètres de type

TResult

Type du résultat retourné par le délégué continuationFunction et associé à la tâche créée.

Paramètres

tasks
Task[]

Tableau de tâches à partir duquel continuer.

continuationFunction
Func<Task[],TResult>

Délégué de fonction à exécuter en mode asynchrone lorsque toutes les tâches du tableau tasks sont terminées.

cancellationToken
CancellationToken

Jeton d’annulation à associer à la nouvelle tâche de continuation.

Retours

Task<TResult>

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationFunction a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

C#
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);

Paramètres de type

TResult

Type du résultat retourné par le délégué continuationFunction et associé à la tâche créée.

Paramètres

tasks
Task[]

Tableau de tâches à partir duquel continuer.

continuationFunction
Func<Task[],TResult>

Délégué de fonction à exécuter en mode asynchrone quand toutes les tâches du tableau tasks sont terminées.

continuationOptions
TaskContinuationOptions

Combinaison d'opérations de bits des valeurs d'énumération qui contrôlent le comportement de la nouvelle tâche de continuation. Les membres NotOn* et OnlyOn* ne sont pas pris en charge.

Retours

Task<TResult>

Nouvelle tâche de continuation.

Exceptions

Un élément du tableau tasks a été supprimé.

Le tableau tasks a la valeur null.

  • ou - L'argument continuationFunction a la valeur null.

L'argument continuationOptions spécifie une valeur non valide.

Le tableau tasks est vide ou contient une valeur null.

Remarques

NotOn et OnlyOn**TaskContinuationOptions, qui limitent l’exécution TaskStatus d’une continuation, sont illégales avec .ContinueWhenAll

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Crée une tâche de continuation qui démarre lorsqu'un ensemble de tâches spécifiées est terminé.

C#
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);

Paramètres de type

TResult

Type du résultat retourné par le délégué continuationFunction et associé à la tâche créée.

Paramètres

tasks
Task[]

Tableau de tâches à partir duquel continuer.

continuationFunction
Func<Task[],TResult>

Délégué de fonction à exécuter en mode asynchrone lorsque toutes les tâches du tableau tasks sont terminées.

cancellationToken
CancellationToken

Jeton d’annulation à associer à la nouvelle tâche de continuation.

continuationOptions
TaskContinuationOptions

Combinaison d'opérations de bits des valeurs d'énumération qui contrôlent le comportement de la nouvelle tâche de continuation. Les membres NotOn* et OnlyOn* ne sont pas pris en charge.

scheduler
TaskScheduler

Objet utilisé pour planifier la nouvelle tâche de continuation.

Retours

Task<TResult>

Nouvelle tâche de continuation.

Exceptions

Le tableau tasks a la valeur null.

  • ou - L'argument continuationFunction a la valeur null.

  • ou - L'argument scheduler a la valeur null.

Le tableau tasks est vide ou contient une valeur null.

continuationOptions spécifie une valeur de TaskContinuationOptions non valide.

Le CancellationToken fourni a déjà été supprimé.

Remarques

NotOn et OnlyOn**TaskContinuationOptions, qui limitent l’exécution TaskStatus d’une continuation, sont illégales avec .ContinueWhenAll

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0