Бөлісу құралы:


TaskFactory.ContinueWhenAll Метод

Определение

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

Перегрузки

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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[]

Массив задач, выполнение которых должно быть продолжено.

continuationAction
Action<Task[]>

Делегат действия для выполнения после завершения выполнения всех задач в массиве tasks.

Возвращаемое значение

Task

Новая задача продолжения.

Исключения

Один из элементов массива 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 продолжения не позволяет обрабатывать исключения, создаваемые предшествующая задачами, поэтому в примере проверяется Task.Status свойство каждой предшествующей задачи, чтобы определить, выполнена ли задача успешно.

Комментарии

Метод ContinueWhenAll выполняет делегат, когда все задачи в tasks массиве завершеныcontinuationAction, независимо от их состояния завершения.

Исключения, создаваемые задачами в массиве tasks , недоступны для задачи продолжения с помощью структурированной обработки исключений. Вы можете определить, какие исключения были созданы, проверив Task.Exception свойство каждой задачи в массиве tasks . Чтобы использовать структурированную обработку исключений для обработки исключений, создаваемых задачами в массиве tasks , вызовите Task.WaitAll(Task[]) метод.

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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[]

Массив задач, выполнение которых должно быть продолжено.

continuationAction
Action<Task[]>

Делегат действия для выполнения после завершения выполнения всех задач в массиве tasks.

cancellationToken
CancellationToken

Токен отмены для присвоения новой задаче продолжения.

Возвращаемое значение

Task

Новая задача продолжения.

Исключения

Один из элементов массива 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)

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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[]

Массив задач, выполнение которых должно быть продолжено.

continuationAction
Action<Task[]>

Делегат действия для выполнения после завершения выполнения всех задач в массиве tasks.

continuationOptions
TaskContinuationOptions

Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.

Возвращаемое значение

Task

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

-или- Аргумент continuationAction имеет значение null.

Аргумент continuationOptions указывает недопустимое значение.

Массив tasks является пустым или содержит значение NULL.

Комментарии

NotOn и OnlyOn**TaskContinuationOptions, который ограничивает состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными с .ContinueWhenAll

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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[]

Массив задач, выполнение которых должно быть продолжено.

continuationAction
Action<Task[]>

Делегат действия для выполнения после завершения выполнения всех задач в массиве tasks.

cancellationToken
CancellationToken

Токен отмены для присвоения новой задаче продолжения.

continuationOptions
TaskContinuationOptions

Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения.

scheduler
TaskScheduler

Объект, который используется для планирования новой задачи продолжения.

Возвращаемое значение

Task

Новая задача продолжения.

Исключения

Массив 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)

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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>[]

Массив задач, выполнение которых должно быть продолжено.

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

Делегат функции, выполняемый асинхронно после завершения выполнения всех задач в массиве tasks.

cancellationToken
CancellationToken

Токен отмены для присвоения новой задаче продолжения.

continuationOptions
TaskContinuationOptions

Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.

scheduler
TaskScheduler

Объект, который используется для планирования новой задачи продолжения.

Возвращаемое значение

Task<TResult>

Новая задача продолжения.

Исключения

Массив tasks имеет значение null.

-или- Аргумент continuationFunction имеет значение null.

-или- Аргумент scheduler имеет значение null.

Массив tasks является пустым или содержит значение NULL.

Аргумент continuationOptions указывает недопустимое значение.

Один из элементов массива tasks удален.

-или- Класс CancellationTokenSource, создавший cancellationToken, уже удален.

Комментарии

NotOn и OnlyOn**TaskContinuationOptions, ограничивающие состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными.ContinueWhenAll

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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>[]

Массив задач, выполнение которых должно быть продолжено.

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

Делегат функции, выполняемый асинхронно после завершения выполнения всех задач в массиве tasks.

continuationOptions
TaskContinuationOptions

Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.

Возвращаемое значение

Task<TResult>

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

-или- Аргумент continuationFunction имеет значение null.

Аргумент continuationOptions указывает недопустимое значение.

Массив tasks является пустым или содержит значение NULL.

Комментарии

NotOn и OnlyOn**TaskContinuationOptions, ограничивающие состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными.ContinueWhenAll

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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>[]

Массив задач, выполнение которых должно быть продолжено.

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

Делегат функции, выполняемый асинхронно после завершения выполнения всех задач в массиве tasks.

cancellationToken
CancellationToken

Токен отмены для присвоения новой задаче продолжения.

Возвращаемое значение

Task<TResult>

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

-или- Класс CancellationTokenSource, создавший cancellationToken, уже удален.

Массив tasks имеет значение null.

-или- Аргумент continuationFunction имеет значение null.

Массив tasks является пустым или содержит значение NULL.

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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>[]

Массив задач, выполнение которых должно быть продолжено.

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

Делегат функции, выполняемый асинхронно после завершения выполнения всех задач в массиве tasks.

Возвращаемое значение

Task<TResult>

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

-или- Аргумент continuationFunction имеет значение null.

Массив tasks является пустым или содержит значение NULL.

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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>[]

Массив задач, выполнение которых должно быть продолжено.

continuationAction
Action<Task<TAntecedentResult>[]>

Делегат действия для выполнения после завершения выполнения всех задач в массиве tasks.

cancellationToken
CancellationToken

Токен отмены для присвоения новой задаче продолжения.

continuationOptions
TaskContinuationOptions

Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.

scheduler
TaskScheduler

Объект, который используется для планирования новой задачи продолжения.

Возвращаемое значение

Task

Новая задача продолжения.

Исключения

Массив tasks имеет значение null.

-или- Аргумент continuationAction имеет значение null.

-или- Аргумент scheduler имеет значение null.

Массив tasks является пустым или содержит значение NULL.

Параметр continuationOptions имеет недопустимое значение TaskContinuationOptions.

Предоставленный объект CancellationToken уже удален.

Комментарии

NotOn и OnlyOn**TaskContinuationOptions, ограничивающие состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными.ContinueWhenAll

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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>[]

Массив задач, выполнение которых должно быть продолжено.

continuationAction
Action<Task<TAntecedentResult>[]>

Делегат действия для выполнения после завершения выполнения всех задач в массиве tasks.

continuationOptions
TaskContinuationOptions

Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.

Возвращаемое значение

Task

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

-или- Аргумент continuationAction имеет значение null.

Аргумент continuationOptions указывает недопустимое значение.

Массив tasks является пустым или содержит значение NULL.

Комментарии

NotOn и OnlyOn**TaskContinuationOptions, который ограничивает состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными с .ContinueWhenAll

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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>[]

Массив задач, выполнение которых должно быть продолжено.

continuationAction
Action<Task<TAntecedentResult>[]>

Делегат действия для выполнения после завершения выполнения всех задач в массиве tasks.

cancellationToken
CancellationToken

Токен отмены для присвоения новой задаче продолжения.

Возвращаемое значение

Task

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

-или- Класс CancellationTokenSource, создавший cancellationToken, уже удален.

Массив tasks имеет значение null.

-или- Аргумент continuationAction имеет значение null.

Массив tasks является пустым или содержит значение NULL.

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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>[]

Массив задач, выполнение которых должно быть продолжено.

continuationAction
Action<Task<TAntecedentResult>[]>

Делегат действия для выполнения после завершения выполнения всех задач в массиве tasks.

Возвращаемое значение

Task

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

-или- Аргумент continuationAction имеет значение null.

Массив tasks является пустым или содержит значение NULL.

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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[]

Массив задач, выполнение которых должно быть продолжено.

continuationFunction
Func<Task[],TResult>

Делегат функции, выполняемый асинхронно после завершения выполнения всех задач в массиве tasks.

Возвращаемое значение

Task<TResult>

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

-или- Аргумент continuationFunction имеет значение null.

Массив tasks является пустым или содержит значение NULL.

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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[]

Массив задач, выполнение которых должно быть продолжено.

continuationFunction
Func<Task[],TResult>

Делегат функции, выполняемый асинхронно после завершения выполнения всех задач в массиве tasks.

cancellationToken
CancellationToken

Токен отмены для присвоения новой задаче продолжения.

Возвращаемое значение

Task<TResult>

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

-или- Класс CancellationTokenSource, создавший cancellationToken, уже удален.

Массив tasks имеет значение null.

-или- Аргумент continuationFunction имеет значение null.

Массив tasks является пустым или содержит значение NULL.

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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[]

Массив задач, выполнение которых должно быть продолжено.

continuationFunction
Func<Task[],TResult>

Делегат функции, выполняемый асинхронно после завершения выполнения всех задач в массиве tasks.

continuationOptions
TaskContinuationOptions

Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.

Возвращаемое значение

Task<TResult>

Новая задача продолжения.

Исключения

Один из элементов массива tasks удален.

Массив tasks имеет значение null.

-или- Аргумент continuationFunction имеет значение null.

Аргумент continuationOptions указывает недопустимое значение.

Массив tasks является пустым или содержит значение NULL.

Комментарии

NotOn и OnlyOn**TaskContinuationOptions, ограничивающие состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными.ContinueWhenAll

См. также раздел

Применяется к

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

Создает задачу продолжения, которая запускается при завершении набора заданных задач.

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[]

Массив задач, выполнение которых должно быть продолжено.

continuationFunction
Func<Task[],TResult>

Делегат функции, выполняемый асинхронно после завершения выполнения всех задач в массиве tasks.

cancellationToken
CancellationToken

Токен отмены для присвоения новой задаче продолжения.

continuationOptions
TaskContinuationOptions

Побитовое сочетание значений перечисления, которые управляют поведением новой задачи продолжения. Члены NotOn* и OnlyOn* не поддерживаются.

scheduler
TaskScheduler

Объект, который используется для планирования новой задачи продолжения.

Возвращаемое значение

Task<TResult>

Новая задача продолжения.

Исключения

Массив tasks имеет значение null.

-или- Аргумент continuationFunction имеет значение null.

-или- Аргумент scheduler имеет значение null.

Массив tasks является пустым или содержит значение NULL.

Параметр continuationOptions имеет недопустимое значение TaskContinuationOptions.

Предоставленный объект CancellationToken уже удален.

Комментарии

NotOn и OnlyOn**TaskContinuationOptions, ограничивающие состояние, для которого TaskStatus будет выполнено продолжение, являются незаконными.ContinueWhenAll

См. также раздел

Применяется к