TaskFactory.ContinueWhenAll Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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é.
public:
System::Threading::Tasks::Task ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<cli::array <System::Threading::Tasks::Task ^> ^> ^ continuationAction);
public System.Threading.Tasks.Task ContinueWhenAll (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task[]> continuationAction);
member this.ContinueWhenAll : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task[]> -> System.Threading.Tasks.Task
Public Function ContinueWhenAll (tasks As Task(), continuationAction As Action(Of Task())) As Task
Paramètres
- tasks
- Task[]
Tableau de tâches à partir duquel continuer.
Délégué d’action à exécuter quand toutes les tâches du tableau tasks
sont terminées.
Retours
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 valeurnull
.
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.
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
Imports System.Collections.Generic
Imports System.IO
Imports System.Threading
Imports System.Threading.Tasks
Imports System.Text.RegularExpressions
Module Example
Dim totalWords As Integer = 0
Public Sub Main()
Dim filenames() As String = { "chapter1.txt", "chapter2.txt",
"chapter3.txt", "chapter4.txt",
"chapter5.txt" }
Dim pattern As String = "\b\w+\b"
Dim tasks As New List(Of Task)()
' Determine the number of words in each file.
For Each filename In filenames
tasks.Add(Task.Factory.StartNew( Sub(fn)
If Not File.Exists(filename)
Throw New FileNotFoundException("{0} does not exist.", filename)
End If
Dim sr As New StreamReader(fn.ToString())
Dim content As String = sr.ReadToEnd()
sr.Close()
Dim words As Integer = Regex.Matches(content, pattern).Count
Interlocked.Add(totalWords, words)
Console.WriteLine("{0,-25} {1,6:N0} words", fn, words)
End Sub, filename))
Next
Dim finalTask As Task = Task.Factory.ContinueWhenAll(tasks.ToArray(),
Sub(wordCountTasks As Task() )
Dim nSuccessfulTasks As Integer = 0
Dim nFailed As Integer = 0
Dim nFileNotFound As Integer = 0
For Each t In wordCountTasks
If t.Status = TaskStatus.RanToCompletion Then _
nSuccessfulTasks += 1
If t.Status = TaskStatus.Faulted Then
nFailed += 1
t.Exception.Handle(Function(e As Exception)
If TypeOf e Is FileNotFoundException Then
nFileNotFound += 1
End If
Return True
End Function)
End If
Next
Console.WriteLine()
Console.WriteLine("{0,-25} {1,6} total words",
String.Format("{0} files", nSuccessfulTasks),
totalWords)
If nFailed > 0 Then
Console.WriteLine()
Console.WriteLine("{0} tasks failed for the following reasons:", nFailed)
Console.WriteLine(" File not found: {0}", nFileNotFound)
If nFailed <> nFileNotFound Then
Console.WriteLine(" Other: {0}", nFailed - nFileNotFound)
End If
End If
End Sub)
finalTask.Wait()
End Sub
Private Sub DisplayResult(wordCountTasks As Task())
End Sub
End Module
' 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 à
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é.
public:
System::Threading::Tasks::Task ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<cli::array <System::Threading::Tasks::Task ^> ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task ContinueWhenAll (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task[]> continuationAction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAll : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task[]> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function ContinueWhenAll (tasks As Task(), continuationAction As Action(Of Task()), cancellationToken As CancellationToken) As Task
Paramètres
- tasks
- Task[]
Tableau de tâches à partir duquel continuer.
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
Nouvelle tâche de continuation.
Exceptions
Un élément du tableau tasks
a été supprimé.
- ou -
Le CancellationTokenSource qui a créé
cancellationToken
a déjà été supprimé.
Le tableau tasks
a la valeur null
.
- ou -
L'argument
continuationAction
a la valeurnull
.
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.
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.
Imports System.Collections.Generic
Imports System.IO
Imports System.Threading
Imports System.Threading.Tasks
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim filenames() As String= { "chapter1.txt", "chapter2.txt",
"chapter3.txt", "chapter4.txt",
"chapter5.txt" }
Dim pattern As String = "\b\w+\b"
Dim tasks As New List(Of Task)()
Dim source As New CancellationTokenSource()
Dim token As CancellationToken = source.Token
Dim totalWords As Integer = 0
' Determine the number of words in each file.
For Each filename In filenames
tasks.Add( Task.Factory.StartNew( Sub(obj As Object)
Dim fn As String = CStr(obj)
token.ThrowIfCancellationRequested()
If Not File.Exists(fn) Then
source.Cancel()
token.ThrowIfCancellationRequested()
End If
Dim sr As New StreamReader(fn.ToString())
Dim content As String = sr.ReadToEnd()
sr.Close()
Dim words As Integer = Regex.Matches(content, pattern).Count
Interlocked.Add(totalWords, words)
Console.WriteLine("{0,-25} {1,6:N0} words", fn, words)
End Sub, filename, token))
Next
Dim finalTask As Task = Task.Factory.ContinueWhenAll(tasks.ToArray(),
Sub(wordCountTasks As Task())
If Not token.IsCancellationRequested Then
Console.WriteLine("\n{0,-25} {1,6} total words\n",
String.Format("{0} files", wordCountTasks.Length),
totalWords)
End If
End Sub, token)
Try
finalTask.Wait()
Catch ae As AggregateException
For Each inner In ae.InnerExceptions
Console.WriteLine()
If TypeOf inner Is TaskCanceledException
Console.WriteLine("Failure to determine total word count: a task was cancelled.")
Else
Console.WriteLine("Failure caused by {0}", inner.GetType().Name)
End If
Next
Finally
source.Dispose()
End Try
End Sub
End Module
' 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 à
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é.
public:
System::Threading::Tasks::Task ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<cli::array <System::Threading::Tasks::Task ^> ^> ^ continuationAction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task ContinueWhenAll (System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task[]> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
member this.ContinueWhenAll : System.Threading.Tasks.Task[] * Action<System.Threading.Tasks.Task[]> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task
Public Function ContinueWhenAll (tasks As Task(), continuationAction As Action(Of Task()), continuationOptions As TaskContinuationOptions) As Task
Paramètres
- tasks
- Task[]
Tableau de tâches à partir duquel continuer.
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
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 valeurnull
.
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 à
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é.
public:
System::Threading::Tasks::Task ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Action<cli::array <System::Threading::Tasks::Task ^> ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
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);
member this.ContinueWhenAll : 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 ContinueWhenAll (tasks As Task(), continuationAction As Action(Of Task()), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task
Paramètres
- tasks
- Task[]
Tableau de tâches à partir duquel continuer.
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
Nouvelle tâche de continuation.
Exceptions
Le tableau tasks
a la valeur null
.
ou - L'argument
continuationAction
a la valeurnull
.ou - L'argument
scheduler
a la valeurnull
.
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 à
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é.
public:
generic <typename TAntecedentResult, typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<cli::array <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> 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);
member this.ContinueWhenAll : 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 ContinueWhenAll(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)
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.
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
Nouvelle tâche de continuation.
Exceptions
Le tableau tasks
a la valeur null
.
ou - L'argument
continuationFunction
a la valeurnull
.ou - L'argument
scheduler
a la valeurnull
.
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é.
- ou -
Le CancellationTokenSource qui a créé
cancellationToken
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
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TAntecedentResult, typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^, TResult> ^ continuationFunction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
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);
member this.ContinueWhenAll : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>[], 'Result> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAll(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult)(), TResult), continuationOptions As TaskContinuationOptions) As Task(Of TResult)
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.
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
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 valeurnull
.
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
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TAntecedentResult, typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken);
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);
member this.ContinueWhenAll : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>[], 'Result> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAll(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult)(), TResult), cancellationToken As CancellationToken) As Task(Of TResult)
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.
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
Nouvelle tâche de continuation.
Exceptions
Un élément du tableau tasks
a été supprimé.
- ou -
Le CancellationTokenSource qui a créé
cancellationToken
a déjà été supprimé.
Le tableau tasks
a la valeur null
.
- ou -
L'argument
continuationFunction
a la valeurnull
.
Le tableau tasks
est vide ou contient une valeur null.
Voir aussi
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TAntecedentResult, typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Func<cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^, TResult> ^ continuationFunction);
public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TAntecedentResult,TResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Func<System.Threading.Tasks.Task<TAntecedentResult>[],TResult> continuationFunction);
member this.ContinueWhenAll : System.Threading.Tasks.Task<'AntecedentResult>[] * Func<System.Threading.Tasks.Task<'AntecedentResult>[], 'Result> -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAll(Of TAntecedentResult, TResult) (tasks As Task(Of TAntecedentResult)(), continuationFunction As Func(Of Task(Of TAntecedentResult)(), TResult)) As Task(Of TResult)
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.
Délégué de fonction à exécuter en mode asynchrone quand toutes les tâches du tableau tasks
sont terminées.
Retours
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 valeurnull
.
Le tableau tasks
est vide ou contient une valeur null.
Voir aussi
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TAntecedentResult>
System::Threading::Tasks::Task ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<cli::array <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 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);
member this.ContinueWhenAll : 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 ContinueWhenAll(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
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.
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
Nouvelle tâche de continuation.
Exceptions
Le tableau tasks
a la valeur null
.
ou - L'argument
continuationAction
a la valeurnull
.ou - L'argument
scheduler
a la valeurnull
.
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
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TAntecedentResult>
System::Threading::Tasks::Task ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^> ^ continuationAction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
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);
member this.ContinueWhenAll : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>[]> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task
Public Function ContinueWhenAll(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult)()), continuationOptions As TaskContinuationOptions) As Task
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.
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
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 valeurnull
.
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
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TAntecedentResult>
System::Threading::Tasks::Task ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task ContinueWhenAll<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>[]> continuationAction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAll : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>[]> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function ContinueWhenAll(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult)()), cancellationToken As CancellationToken) As Task
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.
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
Nouvelle tâche de continuation.
Exceptions
Un élément du tableau tasks
a été supprimé.
- ou -
Le CancellationTokenSource qui a créé
cancellationToken
a déjà été supprimé.
Le tableau tasks
a la valeur null
.
- ou -
L'argument
continuationAction
a la valeurnull
.
Le tableau tasks
est vide ou contient une valeur null.
Voir aussi
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TAntecedentResult>
System::Threading::Tasks::Task ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^ tasks, Action<cli::array <System::Threading::Tasks::Task<TAntecedentResult> ^> ^> ^ continuationAction);
public System.Threading.Tasks.Task ContinueWhenAll<TAntecedentResult> (System.Threading.Tasks.Task<TAntecedentResult>[] tasks, Action<System.Threading.Tasks.Task<TAntecedentResult>[]> continuationAction);
member this.ContinueWhenAll : System.Threading.Tasks.Task<'AntecedentResult>[] * Action<System.Threading.Tasks.Task<'AntecedentResult>[]> -> System.Threading.Tasks.Task
Public Function ContinueWhenAll(Of TAntecedentResult) (tasks As Task(Of TAntecedentResult)(), continuationAction As Action(Of Task(Of TAntecedentResult)())) As Task
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.
Délégué d’action à exécuter quand toutes les tâches du tableau tasks
sont terminées.
Retours
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 valeurnull
.
Le tableau tasks
est vide ou contient une valeur null.
Voir aussi
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<cli::array <System::Threading::Tasks::Task ^> ^, TResult> ^ continuationFunction);
public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task[],TResult> continuationFunction);
member this.ContinueWhenAll : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task[], 'Result> -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAll(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task(), TResult)) As Task(Of TResult)
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.
Délégué de fonction à exécuter en mode asynchrone quand toutes les tâches du tableau tasks
sont terminées.
Retours
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 valeurnull
.
Le tableau tasks
est vide ou contient une valeur null.
Voir aussi
S’applique à
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é.
public:
generic <typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<cli::array <System::Threading::Tasks::Task ^> ^, TResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<TResult> ContinueWhenAll<TResult> (System.Threading.Tasks.Task[] tasks, Func<System.Threading.Tasks.Task[],TResult> continuationFunction, System.Threading.CancellationToken cancellationToken);
member this.ContinueWhenAll : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task[], 'Result> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAll(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task(), TResult), cancellationToken As CancellationToken) As Task(Of TResult)
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.
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
Nouvelle tâche de continuation.
Exceptions
Un élément du tableau tasks
a été supprimé.
- ou -
Le CancellationTokenSource qui a créé
cancellationToken
a déjà été supprimé.
Le tableau tasks
a la valeur null
.
- ou -
L'argument
continuationFunction
a la valeurnull
.
Le tableau tasks
est vide ou contient une valeur null.
Voir aussi
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<cli::array <System::Threading::Tasks::Task ^> ^, TResult> ^ continuationFunction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
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);
member this.ContinueWhenAll : System.Threading.Tasks.Task[] * Func<System.Threading.Tasks.Task[], 'Result> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task<'Result>
Public Function ContinueWhenAll(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task(), TResult), continuationOptions As TaskContinuationOptions) As Task(Of TResult)
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.
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
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 valeurnull
.
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
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches
S’applique à
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é.
public:
generic <typename TResult>
System::Threading::Tasks::Task<TResult> ^ ContinueWhenAll(cli::array <System::Threading::Tasks::Task ^> ^ tasks, Func<cli::array <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> 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);
member this.ContinueWhenAll : 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 ContinueWhenAll(Of TResult) (tasks As Task(), continuationFunction As Func(Of Task(), TResult), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task(Of TResult)
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.
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
Nouvelle tâche de continuation.
Exceptions
Le tableau tasks
a la valeur null
.
ou - L'argument
continuationFunction
a la valeurnull
.ou - L'argument
scheduler
a la valeurnull
.
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
- Bibliothèque parallèle de tâches
- Chaînage des tâches à l’aide de tâches de continuation
- Annulation de tâches