TaskFactory.ContinueWhenAll Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
Přetížení
ContinueWhenAll(Task[], Action<Task[]>)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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
Parametry
- tasks
- Task[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát akce, který se má provést, když se dokončí všechny úkoly v tasks
poli.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Příklady
Následující příklad spustí samostatné úkoly, které používají regulární výraz k počítání počtu slov v sadě textových souborů. Metoda ContinueWhenAll se používá ke spuštění úkolu, který zobrazuje celkový počet slov, když jsou dokončeny všechny úkoly s tecedentem.
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
Volání metody pokračování Task.Wait úkolu neumožňuje zpracování výjimek vyvolaných úlohami atecedent, takže příklad prozkoumá Task.Status vlastnost každého tecedent úkolu a určí, zda úkol byl úspěšný.
Poznámky
Metoda ContinueWhenAll provede continuationAction
delegáta, když jsou všechny úkoly v tasks
poli dokončeny bez ohledu na jejich stav dokončení.
Výjimky vyvolané úlohami v tasks
poli nejsou k dispozici pro pokračování úkolu prostřednictvím strukturovaného zpracování výjimek. Můžete určit, které výjimky byly vyvolány prozkoumáním Task.Exception vlastnosti jednotlivých úkolů v tasks
poli. Pokud chcete použít strukturované zpracování výjimek pro zpracování výjimek vyvolaných úlohami v tasks
poli, zavolejte metodu Task.WaitAll(Task[]) .
Viz také
Platí pro
ContinueWhenAll(Task[], Action<Task[]>, CancellationToken)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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
Parametry
- tasks
- Task[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát akce, který se má provést, když se dokončí všechny úkoly v tasks
poli.
- cancellationToken
- CancellationToken
Token zrušení pro přiřazení k nové úloze pokračování.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
-nebo-
cancellationToken
Vytvořený CancellationTokenSource soubor již byl odstraněn.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Příklady
Následující příklad vytvoří token zrušení, který předá samostatným úkolům, které používají regulární výraz k počítání počtu slov v sadě textových souborů. Token zrušení je nastavený v případě, že soubor nebyl nalezen. Metoda ContinueWhenAll(Task[], Action{Task[]}, CancellationToken)
se používá ke spuštění úkolu, který zobrazuje celkový počet slov, když jsou dokončeny všechny úkoly s tecedentem. Pokud je nastavený token zrušení, který označuje, že došlo ke zrušení jedné nebo několika úloh, zpracuje AggregateException výjimku a zobrazí chybovou zprávu.
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.
Poznámky
Tato metoda provede delegáta continuationAction
, když se dokončí všechny úkoly v tasks
poli bez ohledu na jejich stav dokončení.
Viz také
Platí pro
ContinueWhenAll(Task[], Action<Task[]>, TaskContinuationOptions)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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
Parametry
- tasks
- Task[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát akce, který se má provést, když se dokončí všechny úkoly v tasks
poli.
- continuationOptions
- TaskContinuationOptions
Bitové kombinace hodnot výčtu, které řídí chování nové úlohy pokračování. Členy NotOn* a OnlyOn* nejsou podporovány.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
Argument continuationOptions
určuje neplatnou hodnotu.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Poznámky
NotOn and OnlyOn** TaskContinuationOptions, které omezení, pro které TaskStatus stavy bude pokračování spuštěno, jsou nelegální s .ContinueWhenAll
Viz také
Platí pro
ContinueWhenAll(Task[], Action<Task[]>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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
Parametry
- tasks
- Task[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát akce, který se má provést, když se dokončí všechny úkoly v tasks
poli.
- cancellationToken
- CancellationToken
Token zrušení pro přiřazení k nové úloze pokračování.
- continuationOptions
- TaskContinuationOptions
Bitové kombinace hodnot výčtu, které řídí chování nové úlohy pokračování.
- scheduler
- TaskScheduler
Objekt, který se používá k naplánování nové úlohy pokračování.
Návraty
Nový úkol pokračování.
Výjimky
Pole tasks
je null
.
-nebo-
Argument continuationAction
je null
.
-nebo-
Argument scheduler
je null
.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
continuationOptions
určuje neplatnou TaskContinuationOptions hodnotu.
CancellationToken Poskytnutá služba již byla odstraněna.
Poznámky
NotOn and OnlyOn** TaskContinuationOptions, které omezení, pro které TaskStatus stavy bude pokračování spuštěno, jsou nelegální s .ContinueWhenAll
Viz také
Platí pro
ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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)
Parametry typu
- TAntecedentResult
Typ výsledku antecedentu tasks
.
- TResult
Typ výsledku vráceného delegátem continuationFunction
a přidružený k vytvořenému úkolu.
Parametry
- tasks
- Task<TAntecedentResult>[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát funkce, který se má spouštět asynchronně, když se dokončí všechny úkoly v tasks
poli.
- cancellationToken
- CancellationToken
Token zrušení pro přiřazení k nové úloze pokračování.
- continuationOptions
- TaskContinuationOptions
Bitové kombinace hodnot výčtu, které řídí chování nové úlohy pokračování. Členy NotOn* a OnlyOn* nejsou podporovány.
- scheduler
- TaskScheduler
Objekt, který se používá k naplánování nové úlohy pokračování.
Návraty
Nový úkol pokračování.
Výjimky
Pole tasks
je null
.
-nebo-
Argument continuationFunction
je null
.
-nebo-
Argument scheduler
je null
.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Argument continuationOptions
určuje neplatnou hodnotu.
Prvek v tasks
poli byl odstraněn.
-nebo-
cancellationToken
Vytvořený CancellationTokenSource soubor již byl odstraněn.
Poznámky
NotOn and OnlyOn** TaskContinuationOptions, které omezení, pro které TaskStatus stavy bude pokračování spuštěno, jsou nelegální s .ContinueWhenAll
Viz také
Platí pro
ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>, TaskContinuationOptions)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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)
Parametry typu
- TAntecedentResult
Typ výsledku antecedentu tasks
.
- TResult
Typ výsledku vráceného delegátem continuationFunction
a přidružený k vytvořenému úkolu.
Parametry
- tasks
- Task<TAntecedentResult>[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát funkce, který se má spouštět asynchronně, když se dokončí všechny úkoly v tasks
poli.
- continuationOptions
- TaskContinuationOptions
Bitové kombinace hodnot výčtu, které řídí chování nové úlohy pokračování. Členy NotOn* a OnlyOn* nejsou podporovány.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
Argument continuationOptions
určuje neplatnou hodnotu.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Poznámky
NotOn and OnlyOn** TaskContinuationOptions, které omezení, pro které TaskStatus stavy bude pokračování spuštěno, jsou nelegální s .ContinueWhenAll
Viz také
Platí pro
ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>, CancellationToken)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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)
Parametry typu
- TAntecedentResult
Typ výsledku antecedentu tasks
.
- TResult
Typ výsledku vráceného delegátem continuationFunction
a přidružený k vytvořenému úkolu.
Parametry
- tasks
- Task<TAntecedentResult>[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát funkce, který se má spouštět asynchronně, když se dokončí všechny úkoly v tasks
poli.
- cancellationToken
- CancellationToken
Token zrušení pro přiřazení k nové úloze pokračování.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
-nebo-
cancellationToken
Vytvořený CancellationTokenSource soubor již byl odstraněn.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Viz také
Platí pro
ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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)
Parametry typu
- TAntecedentResult
Typ výsledku antecedentu tasks
.
- TResult
Typ výsledku vráceného delegátem continuationFunction
a přidružený k vytvořenému úkolu.
Parametry
- tasks
- Task<TAntecedentResult>[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát funkce, který se má spouštět asynchronně, když se dokončí všechny úkoly v tasks
poli.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Viz také
Platí pro
ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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
Parametry typu
- TAntecedentResult
Typ výsledku antecedentu tasks
.
Parametry
- tasks
- Task<TAntecedentResult>[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát akce, který se má provést, když se dokončí všechny úkoly v tasks
poli.
- cancellationToken
- CancellationToken
Token zrušení pro přiřazení k nové úloze pokračování.
- continuationOptions
- TaskContinuationOptions
Bitové kombinace hodnot výčtu, které řídí chování nové úlohy pokračování. Členy NotOn* a OnlyOn* nejsou podporovány.
- scheduler
- TaskScheduler
Objekt, který se používá k naplánování nové úlohy pokračování.
Návraty
Nový úkol pokračování.
Výjimky
Pole tasks
je null
.
-nebo-
Argument continuationAction
je null
.
-nebo-
Argument scheduler
je null
.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
continuationOptions
určuje neplatnou TaskContinuationOptions hodnotu.
CancellationToken Poskytnutá služba již byla odstraněna.
Poznámky
NotOn and OnlyOn** TaskContinuationOptions, které omezení, pro které TaskStatus stavy bude pokračování spuštěno, jsou nelegální s .ContinueWhenAll
Viz také
Platí pro
ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, TaskContinuationOptions)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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
Parametry typu
- TAntecedentResult
Typ výsledku antecedentu tasks
.
Parametry
- tasks
- Task<TAntecedentResult>[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát akce, který se má provést, když se dokončí všechny úkoly v tasks
poli.
- continuationOptions
- TaskContinuationOptions
Bitové kombinace hodnot výčtu, které řídí chování nové úlohy pokračování. Členy NotOn* a OnlyOn* nejsou podporovány.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
Argument continuationOptions
určuje neplatnou hodnotu.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Poznámky
NotOn and OnlyOn** TaskContinuationOptions, které omezení, pro které TaskStatus stavy bude pokračování spuštěno, jsou nelegální s .ContinueWhenAll
Viz také
Platí pro
ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, CancellationToken)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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
Parametry typu
- TAntecedentResult
Typ výsledku antecedentu tasks
.
Parametry
- tasks
- Task<TAntecedentResult>[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát akce, který se má provést, když se dokončí všechny úkoly v tasks
poli.
- cancellationToken
- CancellationToken
Token zrušení pro přiřazení k nové úloze pokračování.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
-nebo-
cancellationToken
Vytvořený CancellationTokenSource soubor již byl odstraněn.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Viz také
Platí pro
ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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
Parametry typu
- TAntecedentResult
Typ výsledku antecedentu tasks
.
Parametry
- tasks
- Task<TAntecedentResult>[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát akce, který se má provést, když se dokončí všechny úkoly v tasks
poli.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Viz také
Platí pro
ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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)
Parametry typu
- TResult
Typ výsledku vráceného delegátem continuationFunction
a přidružený k vytvořenému úkolu.
Parametry
- tasks
- Task[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát funkce, který se má spouštět asynchronně, když se dokončí všechny úkoly v tasks
poli.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Viz také
Platí pro
ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>, CancellationToken)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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)
Parametry typu
- TResult
Typ výsledku vráceného delegátem continuationFunction
a přidružený k vytvořenému úkolu.
Parametry
- tasks
- Task[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát funkce, který se má spouštět asynchronně, když se dokončí všechny úkoly v tasks
poli.
- cancellationToken
- CancellationToken
Token zrušení pro přiřazení k nové úloze pokračování.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
-nebo-
cancellationToken
Vytvořený CancellationTokenSource soubor již byl odstraněn.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Viz také
Platí pro
ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>, TaskContinuationOptions)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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)
Parametry typu
- TResult
Typ výsledku vráceného delegátem continuationFunction
a přidružený k vytvořenému úkolu.
Parametry
- tasks
- Task[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát funkce, který se má spouštět asynchronně, když se dokončí všechny úkoly v tasks
poli.
- continuationOptions
- TaskContinuationOptions
Bitové kombinace hodnot výčtu, které řídí chování nové úlohy pokračování. Členy NotOn* a OnlyOn* nejsou podporovány.
Návraty
Nový úkol pokračování.
Výjimky
Prvek v tasks
poli byl odstraněn.
Argument continuationOptions
určuje neplatnou hodnotu.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
Poznámky
NotOn and OnlyOn** TaskContinuationOptions, které omezení, pro které TaskStatus stavy bude pokračování spuštěno, jsou nelegální s .ContinueWhenAll
Viz také
Platí pro
ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
Vytvoří úlohu pokračování, která začíná po dokončení sady zadaných úkolů.
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)
Parametry typu
- TResult
Typ výsledku vráceného delegátem continuationFunction
a přidružený k vytvořenému úkolu.
Parametry
- tasks
- Task[]
Pole úkolů, ze kterých chcete pokračovat.
Delegát funkce, který se má spouštět asynchronně, když se dokončí všechny úkoly v tasks
poli.
- cancellationToken
- CancellationToken
Token zrušení pro přiřazení k nové úloze pokračování.
- continuationOptions
- TaskContinuationOptions
Bitové kombinace hodnot výčtu, které řídí chování nové úlohy pokračování. Členy NotOn* a OnlyOn* nejsou podporovány.
- scheduler
- TaskScheduler
Objekt, který se používá k naplánování nové úlohy pokračování.
Návraty
Nový úkol pokračování.
Výjimky
Pole tasks
je null
.
-nebo-
Argument continuationFunction
je null
.
-nebo-
Argument scheduler
je null
.
Pole tasks
je prázdné nebo obsahuje hodnotu null.
continuationOptions
určuje neplatnou TaskContinuationOptions hodnotu.
CancellationToken Poskytnutá služba již byla odstraněna.
Poznámky
NotOn and OnlyOn** TaskContinuationOptions, které omezení, pro které TaskStatus stavy bude pokračování spuštěno, jsou nelegální s .ContinueWhenAll