TaskFactory.ContinueWhenAll Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
Перегрузки
ContinueWhenAll(Task[], Action<Task[]>)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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
Параметры
- tasks
- Task[]
Массив задач, из которых следует продолжить.
Делегат действия для выполнения при выполнении всех задач в массиве tasks .
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationAction имеет значение null.
Массив tasks пуст или содержит значение NULL.
Примеры
В следующем примере выполняются отдельные задачи, использующие регулярное выражение для подсчета количества слов в наборе текстовых файлов. Метод ContinueWhenAll используется для запуска задачи, отображающей общее число слов при завершении всех задач.
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
Вызов метода задачи Task.Wait продолжения не позволяет обрабатывать исключения, создаваемые задачами antecedent, поэтому в примере проверяется Task.Status свойство каждой предшествующего задачи, чтобы определить, выполнена ли задача успешно.
Комментарии
Метод ContinueWhenAll выполняет continuationAction делегат, когда все задачи в массиве tasks завершены независимо от их состояния завершения.
Исключения, создаваемые задачами в массиве tasks , недоступны для задачи продолжения с помощью структурированной обработки исключений. Вы можете определить, какие исключения были вызваны, проверив Task.Exception свойство каждой задачи в массиве tasks . Чтобы использовать структурированную обработку исключений для обработки исключений, создаваемых задачами в массиве tasks , вызовите Task.WaitAll(Task[]) метод.
См. также раздел
Применяется к
ContinueWhenAll(Task[], Action<Task[]>, CancellationToken)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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
Параметры
- tasks
- Task[]
Массив задач, из которых следует продолжить.
Делегат действия для выполнения при выполнении всех задач в массиве tasks .
- cancellationToken
- CancellationToken
Маркер отмены, назначенный новой задаче продолжения.
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
–или–
Созданный CancellationTokenSource объект cancellationToken уже удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationAction имеет значение null.
Массив tasks пуст или содержит значение NULL.
Примеры
В следующем примере создается маркер отмены, который передается отдельным задачам, которые используют регулярное выражение для подсчета количества слов в наборе текстовых файлов. Маркер отмены задается, если файл не найден. Метод ContinueWhenAll(Task[], Action{Task[]}, CancellationToken) используется для запуска задачи, отображающей общее число слов при завершении всех задач. Если задан маркер отмены, указывающий, что одна или несколько задач отменена, она обрабатывает AggregateException исключение и отображает сообщение об ошибке.
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.
Комментарии
Этот метод выполняет continuationAction делегат, когда все задачи в массиве tasks завершены независимо от их состояния завершения.
См. также раздел
Применяется к
ContinueWhenAll(Task[], Action<Task[]>, TaskContinuationOptions)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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
Параметры
- tasks
- Task[]
Массив задач, из которых следует продолжить.
Делегат действия для выполнения при выполнении всех задач в массиве tasks .
- continuationOptions
- TaskContinuationOptions
Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationAction имеет значение null.
Аргумент continuationOptions задает недопустимое значение.
Массив tasks пуст или содержит значение NULL.
Комментарии
NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAll.
См. также раздел
Применяется к
ContinueWhenAll(Task[], Action<Task[]>, CancellationToken, TaskContinuationOptions, TaskScheduler)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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
Параметры
- tasks
- Task[]
Массив задач, из которых следует продолжить.
Делегат действия для выполнения при выполнении всех задач в массиве tasks .
- cancellationToken
- CancellationToken
Маркер отмены, назначенный новой задаче продолжения.
- continuationOptions
- TaskContinuationOptions
Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения.
- scheduler
- TaskScheduler
Объект, используемый для планирования новой задачи продолжения.
Возвращаемое значение
Новая задача продолжения.
Исключения
Массив tasks имеет значение null.
–или–
Аргумент continuationAction имеет значение null.
–или–
Аргумент scheduler имеет значение null.
Массив tasks пуст или содержит значение NULL.
continuationOptions указывает недопустимое TaskContinuationOptions значение.
Предоставленные CancellationToken уже удалены.
Комментарии
NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAll.
См. также раздел
Применяется к
ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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)
Параметры типа
- TAntecedentResult
Тип результата отступа tasks.
- TResult
Тип результата, возвращаемого делегатом continuationFunction и связанного с созданной задачей.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, из которых следует продолжить.
Делегат функции для асинхронного выполнения всех задач в массиве tasks .
- cancellationToken
- CancellationToken
Маркер отмены, назначенный новой задаче продолжения.
- continuationOptions
- TaskContinuationOptions
Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.
- scheduler
- TaskScheduler
Объект, используемый для планирования новой задачи продолжения.
Возвращаемое значение
Новая задача продолжения.
Исключения
Массив tasks имеет значение null.
–или–
Аргумент continuationFunction имеет значение null.
–или–
Аргумент scheduler имеет значение null.
Массив tasks пуст или содержит значение NULL.
Аргумент continuationOptions задает недопустимое значение.
Элемент в массиве tasks удален.
–или–
Созданный CancellationTokenSource объект cancellationToken уже удален.
Комментарии
NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAll.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>, TaskContinuationOptions)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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)
Параметры типа
- TAntecedentResult
Тип результата отступа tasks.
- TResult
Тип результата, возвращаемого делегатом continuationFunction и связанного с созданной задачей.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, из которых следует продолжить.
Делегат функции для асинхронного выполнения всех задач в массиве tasks .
- continuationOptions
- TaskContinuationOptions
Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationFunction имеет значение null.
Аргумент continuationOptions задает недопустимое значение.
Массив tasks пуст или содержит значение NULL.
Комментарии
NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAll.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>, CancellationToken)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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)
Параметры типа
- TAntecedentResult
Тип результата отступа tasks.
- TResult
Тип результата, возвращаемого делегатом continuationFunction и связанного с созданной задачей.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, из которых следует продолжить.
Делегат функции для асинхронного выполнения всех задач в массиве tasks .
- cancellationToken
- CancellationToken
Маркер отмены, назначенный новой задаче продолжения.
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
–или–
Созданный CancellationTokenSource объект cancellationToken уже удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationFunction имеет значение null.
Массив tasks пуст или содержит значение NULL.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TAntecedentResult,TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[],TResult>)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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)
Параметры типа
- TAntecedentResult
Тип результата отступа tasks.
- TResult
Тип результата, возвращаемого делегатом continuationFunction и связанного с созданной задачей.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, из которых следует продолжить.
Делегат функции для асинхронного выполнения всех задач в массиве tasks .
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationFunction имеет значение null.
Массив tasks пуст или содержит значение NULL.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, CancellationToken, TaskContinuationOptions, TaskScheduler)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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
Параметры типа
- TAntecedentResult
Тип результата отступа tasks.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, из которых следует продолжить.
Делегат действия для выполнения при выполнении всех задач в массиве tasks .
- cancellationToken
- CancellationToken
Маркер отмены, назначенный новой задаче продолжения.
- continuationOptions
- TaskContinuationOptions
Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.
- scheduler
- TaskScheduler
Объект, используемый для планирования новой задачи продолжения.
Возвращаемое значение
Новая задача продолжения.
Исключения
Массив tasks имеет значение null.
–или–
Аргумент continuationAction имеет значение null.
–или–
Аргумент scheduler имеет значение null.
Массив tasks пуст или содержит значение NULL.
continuationOptions указывает недопустимое TaskContinuationOptions значение.
Предоставленные CancellationToken уже удалены.
Комментарии
NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAll.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, TaskContinuationOptions)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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
Параметры типа
- TAntecedentResult
Тип результата отступа tasks.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, из которых следует продолжить.
Делегат действия для выполнения при выполнении всех задач в массиве tasks .
- continuationOptions
- TaskContinuationOptions
Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationAction имеет значение null.
Аргумент continuationOptions задает недопустимое значение.
Массив tasks пуст или содержит значение NULL.
Комментарии
NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAll.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, CancellationToken)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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
Параметры типа
- TAntecedentResult
Тип результата отступа tasks.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, из которых следует продолжить.
Делегат действия для выполнения при выполнении всех задач в массиве tasks .
- cancellationToken
- CancellationToken
Маркер отмены, назначенный новой задаче продолжения.
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
–или–
Созданный CancellationTokenSource объект cancellationToken уже удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationAction имеет значение null.
Массив tasks пуст или содержит значение NULL.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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
Параметры типа
- TAntecedentResult
Тип результата отступа tasks.
Параметры
- tasks
- Task<TAntecedentResult>[]
Массив задач, из которых следует продолжить.
Делегат действия для выполнения при выполнении всех задач в массиве tasks .
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationAction имеет значение null.
Массив tasks пуст или содержит значение NULL.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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)
Параметры типа
- TResult
Тип результата, возвращаемого делегатом continuationFunction и связанного с созданной задачей.
Параметры
- tasks
- Task[]
Массив задач, из которых следует продолжить.
Делегат функции для асинхронного выполнения всех задач в массиве tasks .
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationFunction имеет значение null.
Массив tasks пуст или содержит значение NULL.
См. также раздел
Применяется к
ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>, CancellationToken)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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)
Параметры типа
- TResult
Тип результата, возвращаемого делегатом continuationFunction и связанного с созданной задачей.
Параметры
- tasks
- Task[]
Массив задач, из которых следует продолжить.
Делегат функции для асинхронного выполнения всех задач в массиве tasks .
- cancellationToken
- CancellationToken
Маркер отмены, назначенный новой задаче продолжения.
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
–или–
Созданный CancellationTokenSource объект cancellationToken уже удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationFunction имеет значение null.
Массив tasks пуст или содержит значение NULL.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>, TaskContinuationOptions)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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)
Параметры типа
- TResult
Тип результата, возвращаемого делегатом continuationFunction и связанного с созданной задачей.
Параметры
- tasks
- Task[]
Массив задач, из которых следует продолжить.
Делегат функции для асинхронного выполнения всех задач в массиве tasks .
- continuationOptions
- TaskContinuationOptions
Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.
Возвращаемое значение
Новая задача продолжения.
Исключения
Элемент в массиве tasks удален.
Массив tasks имеет значение null.
–или–
Аргумент continuationFunction имеет значение null.
Аргумент continuationOptions задает недопустимое значение.
Массив tasks пуст или содержит значение NULL.
Комментарии
NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAll.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи
Применяется к
ContinueWhenAll<TResult>(Task[], Func<Task[],TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
- Исходный код:
- TaskFactory.cs
Создает задачу продолжения, которая начинается при завершении набора указанных задач.
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)
Параметры типа
- TResult
Тип результата, возвращаемого делегатом continuationFunction и связанного с созданной задачей.
Параметры
- tasks
- Task[]
Массив задач, из которых следует продолжить.
Делегат функции для асинхронного выполнения всех задач в массиве tasks .
- cancellationToken
- CancellationToken
Маркер отмены, назначенный новой задаче продолжения.
- continuationOptions
- TaskContinuationOptions
Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.
- scheduler
- TaskScheduler
Объект, используемый для планирования новой задачи продолжения.
Возвращаемое значение
Новая задача продолжения.
Исключения
Массив tasks имеет значение null.
–или–
Аргумент continuationFunction имеет значение null.
–или–
Аргумент scheduler имеет значение null.
Массив tasks пуст или содержит значение NULL.
continuationOptions указывает недопустимое TaskContinuationOptions значение.
Предоставленные CancellationToken уже удалены.
Комментарии
NotOn* и OnlyOn* TaskContinuationOptions, ограничивающий, для которого TaskStatus будет выполнено продолжение, являются незаконными ContinueWhenAll.
См. также раздел
- Библиотека параллельных задач (TPL)
- Построение цепочек задач с помощью задач продолжения
- отмена задачи