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 、完了状態に continuationAction 関係なく、配列内 tasks のすべてのタスクが完了したときにデリゲートを実行します。

配列内の 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 配列の要素が破棄されました。

tasks 配列が null です。

  • または - continuationAction 引数が null です。

tasks 配列が空か、null 値が含まれています。

次の例では、キャンセル トークンを作成します。このトークンは、正規表現を使用して一連のテキスト ファイル内の単語数をカウントする個別のタスクに渡されます。 キャンセル トークンは、ファイルが見つからない場合に設定されます。 この ContinueWhenAll(Task[], Action{Task[]}, CancellationToken) メソッドは、すべての継続タスクが完了したときに合計単語数を表示するタスクを起動するために使用されます。 1 つ以上のタスクが取り消されたことを示すキャンセル トークンが設定されている場合は、例外が 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 値が含まれています。

注釈

継続が実行されることを示す制約TaskStatusを持つ NotOn* と OnlyOn* TaskContinuationOptionsContinueWhenAll、.

こちらもご覧ください

適用対象

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 は既に破棄されています。

注釈

継続が実行されることを示す制約TaskStatusを持つ NotOn* と OnlyOn* TaskContinuationOptionsContinueWhenAll、.

こちらもご覧ください

適用対象

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 配列の要素が破棄されました。

注釈

継続が実行されることを示す制約TaskStatusを持つ NotOn* と OnlyOn* TaskContinuationOptionsContinueWhenAll、.

こちらもご覧ください

適用対象

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 値が含まれています。

注釈

継続が実行されることを示す制約TaskStatusを持つ NotOn* と OnlyOn* TaskContinuationOptionsContinueWhenAll、.

こちらもご覧ください

適用対象

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 配列の要素が破棄されました。

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 は既に破棄されています。

注釈

継続が実行されることを示す制約TaskStatusを持つ NotOn* と OnlyOn* TaskContinuationOptionsContinueWhenAll、.

こちらもご覧ください

適用対象

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 値が含まれています。

注釈

継続が実行されることを示す制約TaskStatusを持つ NotOn* と OnlyOn* TaskContinuationOptionsContinueWhenAll、.

こちらもご覧ください

適用対象

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 配列の要素が破棄されました。

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 配列の要素が破棄されました。

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 値が含まれています。

注釈

継続が実行されることを示す制約TaskStatusを持つ NotOn* と OnlyOn* TaskContinuationOptionsContinueWhenAll、.

こちらもご覧ください

適用対象

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 は既に破棄されています。

注釈

継続が実行されることを示す制約TaskStatusを持つ NotOn* と OnlyOn* TaskContinuationOptionsContinueWhenAll、.

こちらもご覧ください

適用対象