TaskFactory.ContinueWhenAll TaskFactory.ContinueWhenAll TaskFactory.ContinueWhenAll TaskFactory.ContinueWhenAll Method

Definition

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

Überlädt

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationAction
Action<Task[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The action delegate to execute when all tasks in the tasks array have completed.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationAction-Argument lautet null.The continuationAction argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Beispiele

Im folgenden Beispiel werden separate Aufgaben gestartet, die einen regulären Ausdruck verwenden, um die Anzahl der Wörter in einem Satz von Textdateien zu zählen.The following example launches separate tasks that use a regular expression to count the number of words in a set of text files. Die ContinueWhenAll-Methode wird verwendet, um eine Aufgabe zu starten, die die Gesamtanzahl von Wörtern anzeigt, wenn alle vorangehenden Aufgaben abgeschlossen sind.The ContinueWhenAll method is used to launch a task that displays the total word count when all the antecedent tasks have completed.

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

Der aufrufsvorgang der Task.Wait-Methode der Fortsetzungs Aufgabe ermöglicht es nicht, Ausnahmen zu behandeln, die von den vorangehenden Aufgaben ausgelöst werden. Daher wird im Beispiel die Task.Status-Eigenschaft jeder vorangehenden Aufgabe überprüft, um zu bestimmen, ob die Aufgabe erfolgreich war.The call to the continuation task's Task.Wait method does not allow it to handle exceptions thrown by the antecedent tasks, so the example examines the Task.Status property of each antecedent task to determine whether the task succeeded.

Hinweise

Die ContinueWhenAll-Methode führt den continuationAction-Delegaten aus, wenn alle Tasks im tasks-Array abgeschlossen wurden, unabhängig vom Abschluss Status.The ContinueWhenAll method executes the continuationAction delegate when all tasks in the tasks array have completed, regardless of their completion status.

Ausnahmen, die von Aufgaben im tasks-Array ausgelöst werden, sind für die Fortsetzungs Aufgabe durch strukturierte Ausnahmebehandlung nicht verfügbar.Exceptions thrown by tasks in the tasks array are not available to the continuation task through structured exception handling. Sie können bestimmen, welche Ausnahmen ausgelöst wurden, indem Sie die Task.Exception-Eigenschaft der einzelnen Aufgaben im tasks-Array untersuchen.You can determine which exceptions were thrown by examining the Task.Exception property of each task in the tasks array. Um die strukturierte Ausnahmebehandlung zur Behandlung von Ausnahmen zu verwenden, die von Aufgaben im tasks-Array ausgelöst werden, müssen Sie die Task.WaitAll(Task[])-Methode verwenden.To use structured exception handling to handle exceptions thrown by tasks in the tasks array, call the Task.WaitAll(Task[]) method.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationAction
Action<Task[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The action delegate to execute when all tasks in the tasks array have completed.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.The cancellation token to assign to the new continuation task.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

- oder --or- Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.The CancellationTokenSource that created cancellationToken has already been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationAction-Argument lautet null.The continuationAction argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Beispiele

Im folgenden Beispiel wird ein Abbruch Token erstellt, das an separate Aufgaben weitergeleitet wird, die einen regulären Ausdruck verwenden, um die Anzahl der Wörter in einem Satz von Textdateien zu zählen.The following example creates a cancellation token, which it passes to separate tasks that use a regular expression to count the number of words in a set of text files. Das Abbruch Token wird festgelegt, wenn eine Datei nicht gefunden werden kann.The cancellation token is set if a file cannot be found. Die ContinueWhenAll(Task[], Action{Task[]}, CancellationToken)-Methode wird verwendet, um eine Aufgabe zu starten, die die Gesamtanzahl von Wörtern anzeigt, wenn alle vorangehenden Aufgaben abgeschlossen sind.The ContinueWhenAll(Task[], Action{Task[]}, CancellationToken) method is used to launch a task that displays the total word count when all the antecedent tasks have completed. Wenn das Abbruch Token festgelegt wird, was darauf hinweist, dass mindestens eine Aufgabe abgebrochen wurde, wird die Ausnahme AggregateException behandelt, und es wird eine Fehlermeldung angezeigt.If the cancellation token is set, which indicates that one or more tasks have been cancelled, it handles the AggregateException exception and displays an error message.

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.

Hinweise

Diese Methode führt den continuationAction-Delegaten aus, wenn alle Tasks im tasks-Array abgeschlossen wurden, unabhängig vom Abschluss Status.This method executes the continuationAction delegate when all tasks in the tasks array have completed, regardless of their completion status.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationAction
Action<Task[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The action delegate to execute when all tasks in the tasks array have completed.

continuationOptions
TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern.A bitwise combination of the enumeration values that control the behavior of the new continuation task. Die Member NotOn* und OnlyOn* werden nicht unterstützt.The NotOn* and OnlyOn* members are not supported.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationAction-Argument lautet null.The continuationAction argument is null.

Das continuationOptions-Argument gibt einen ungültigen Wert an.The continuationOptions argument specifies an invalid value.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Hinweise

Das noton @ no__t-0 und OnlyOn @ no__t-1 TaskContinuationOptions, das einschränkt, für welches TaskStatus den Status einer Fortsetzung ausführt, ist mit ContinueWhenAll unzulässig.The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAll.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationAction
Action<Task[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The action delegate to execute when all tasks in the tasks array have completed.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.The cancellation token to assign to the new continuation task.

continuationOptions
TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern.A bitwise combination of the enumeration values that control the behavior of the new continuation task.

scheduler
TaskScheduler TaskScheduler TaskScheduler TaskScheduler

Das Objekt, das verwendet wird, um die neue Fortsetzungsaufgabe zu planen.The object that is used to schedule the new continuation task.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationAction-Argument lautet null.The continuationAction argument is null.

- oder --or- Das scheduler-Argument lautet null.The scheduler argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

continuationOptions gibt einen ungültigen TaskContinuationOptions-Wert an.continuationOptions specifies an invalid TaskContinuationOptions value.

Das angegebene CancellationToken wurde bereits verworfen.The provided CancellationToken has already been disposed.

Hinweise

Das noton @ no__t-0 und OnlyOn @ no__t-1 TaskContinuationOptions, das einschränkt, für welches TaskStatus den Status einer Fortsetzung ausführt, ist mit ContinueWhenAll unzulässig.The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAll.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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>

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.The type of the result of the antecedent tasks.

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.The type of the result that is returned by the continuationFunction delegate and associated with the created task.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

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

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The function delegate to execute asynchronously when all tasks in the tasks array have completed.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.The cancellation token to assign to the new continuation task.

continuationOptions
TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern.A bitwise combination of the enumeration values that control the behavior of the new continuation task. Die Member NotOn* und OnlyOn* werden nicht unterstützt.The NotOn* and OnlyOn* members are not supported.

scheduler
TaskScheduler TaskScheduler TaskScheduler TaskScheduler

Das Objekt, das verwendet wird, um die neue Fortsetzungsaufgabe zu planen.The object that is used to schedule the new continuation task.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationFunction-Argument lautet null.The continuationFunction argument is null.

- oder --or- Das scheduler-Argument lautet null.The scheduler argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Das continuationOptions-Argument gibt einen ungültigen Wert an.The continuationOptions argument specifies an invalid value.

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

- oder --or- Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.The CancellationTokenSource that created cancellationToken has already been disposed.

Hinweise

Das noton @ no__t-0 und OnlyOn @ no__t-1 TaskContinuationOptions, das einschränkt, für welches TaskStatus den Status einer Fortsetzung ausführt, ist mit ContinueWhenAll unzulässig.The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAll.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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)

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.The type of the result of the antecedent tasks.

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.The type of the result that is returned by the continuationFunction delegate and associated with the created task.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

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

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The function delegate to execute asynchronously when all tasks in the tasks array have completed.

continuationOptions
TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern.A bitwise combination of the enumeration values that control the behavior of the new continuation task. Die Member NotOn* und OnlyOn* werden nicht unterstützt.The NotOn* and OnlyOn* members are not supported.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationFunction-Argument lautet null.The continuationFunction argument is null.

Das continuationOptions-Argument gibt einen ungültigen Wert an.The continuationOptions argument specifies an invalid value.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Hinweise

Das noton @ no__t-0 und OnlyOn @ no__t-1 TaskContinuationOptions, das einschränkt, für welches TaskStatus den Status einer Fortsetzung ausführt, ist mit ContinueWhenAll unzulässig.The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAll.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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>

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.The type of the result of the antecedent tasks.

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.The type of the result that is returned by the continuationFunction delegate and associated with the created task.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

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

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The function delegate to execute asynchronously when all tasks in the tasks array have completed.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.The cancellation token to assign to the new continuation task.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

- oder --or- Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.The CancellationTokenSource that created cancellationToken has already been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationFunction-Argument lautet null.The continuationFunction argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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)

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.The type of the result of the antecedent tasks.

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.The type of the result that is returned by the continuationFunction delegate and associated with the created task.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

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

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The function delegate to execute asynchronously when all tasks in the tasks array have completed.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationFunction-Argument lautet null.The continuationFunction argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.The type of the result of the antecedent tasks.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationAction
Action<Task<TAntecedentResult>[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The action delegate to execute when all tasks in the tasks array have completed.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.The cancellation token to assign to the new continuation task.

continuationOptions
TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern.A bitwise combination of the enumeration values that control the behavior of the new continuation task. Die Member NotOn* und OnlyOn* werden nicht unterstützt.The NotOn* and OnlyOn* members are not supported.

scheduler
TaskScheduler TaskScheduler TaskScheduler TaskScheduler

Das Objekt, das verwendet wird, um die neue Fortsetzungsaufgabe zu planen.The object that is used to schedule the new continuation task.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationAction-Argument lautet null.The continuationAction argument is null.

- oder --or- Das scheduler-Argument lautet null.The scheduler argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

continuationOptions gibt einen ungültigen TaskContinuationOptions-Wert an.continuationOptions specifies an invalid TaskContinuationOptions value.

Das angegebene CancellationToken wurde bereits verworfen.The provided CancellationToken has already been disposed.

Hinweise

Das noton @ no__t-0 und OnlyOn @ no__t-1 TaskContinuationOptions, das einschränkt, für welches TaskStatus den Status einer Fortsetzung ausführt, ist mit ContinueWhenAll unzulässig.The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAll.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.The type of the result of the antecedent tasks.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationAction
Action<Task<TAntecedentResult>[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The action delegate to execute when all tasks in the tasks array have completed.

continuationOptions
TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern.A bitwise combination of the enumeration values that control the behavior of the new continuation task. Die Member NotOn* und OnlyOn* werden nicht unterstützt.The NotOn* and OnlyOn* members are not supported.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationAction-Argument lautet null.The continuationAction argument is null.

Das continuationOptions-Argument gibt einen ungültigen Wert an.The continuationOptions argument specifies an invalid value.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Hinweise

Das noton @ no__t-0 und OnlyOn @ no__t-1 TaskContinuationOptions, das einschränkt, für welches TaskStatus den Status einer Fortsetzung ausführt, ist mit ContinueWhenAll unzulässig.The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAll.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.The type of the result of the antecedent tasks.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationAction
Action<Task<TAntecedentResult>[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The action delegate to execute when all tasks in the tasks array have completed.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.The cancellation token to assign to the new continuation task.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

- oder --or- Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.The CancellationTokenSource that created cancellationToken has already been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationAction-Argument lautet null.The continuationAction argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.The type of the result of the antecedent tasks.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationAction
Action<Task<TAntecedentResult>[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The action delegate to execute when all tasks in the tasks array have completed.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationAction-Argument lautet null.The continuationAction argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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)

Typparameter

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.The type of the result that is returned by the continuationFunction delegate and associated with the created task.

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationFunction
Func<Task[],TResult>

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The function delegate to execute asynchronously when all tasks in the tasks array have completed.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationFunction-Argument lautet null.The continuationFunction argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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>

Typparameter

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.The type of the result that is returned by the continuationFunction delegate and associated with the created task.

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationFunction
Func<Task[],TResult>

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The function delegate to execute asynchronously when all tasks in the tasks array have completed.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.The cancellation token to assign to the new continuation task.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

- oder --or- Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.The CancellationTokenSource that created cancellationToken has already been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationFunction-Argument lautet null.The continuationFunction argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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)

Typparameter

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.The type of the result that is returned by the continuationFunction delegate and associated with the created task.

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationFunction
Func<Task[],TResult>

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The function delegate to execute asynchronously when all tasks in the tasks array have completed.

continuationOptions
TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern.A bitwise combination of the enumeration values that control the behavior of the new continuation task. Die Member NotOn* und OnlyOn* werden nicht unterstützt.The NotOn* and OnlyOn* members are not supported.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.An element in the tasks array has been disposed.

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationFunction-Argument lautet null.The continuationFunction argument is null.

Das continuationOptions-Argument gibt einen ungültigen Wert an.The continuationOptions argument specifies an invalid value.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

Hinweise

Das noton @ no__t-0 und OnlyOn @ no__t-1 TaskContinuationOptions, das einschränkt, für welches TaskStatus den Status einer Fortsetzung ausführt, ist mit ContinueWhenAll unzulässig.The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAll.

Siehe auch

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.Creates a continuation task that starts when a set of specified tasks has completed.

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>

Typparameter

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.The type of the result that is returned by the continuationFunction delegate and associated with the created task.

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.The array of tasks from which to continue.

continuationFunction
Func<Task[],TResult>

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.The function delegate to execute asynchronously when all tasks in the tasks array have completed.

cancellationToken
CancellationToken CancellationToken CancellationToken CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.The cancellation token to assign to the new continuation task.

continuationOptions
TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern.A bitwise combination of the enumeration values that control the behavior of the new continuation task. Die Member NotOn* und OnlyOn* werden nicht unterstützt.The NotOn* and OnlyOn* members are not supported.

scheduler
TaskScheduler TaskScheduler TaskScheduler TaskScheduler

Das Objekt, das verwendet wird, um die neue Fortsetzungsaufgabe zu planen.The object that is used to schedule the new continuation task.

Gibt zurück

Die neue Fortsetzungsaufgabe.The new continuation task.

Ausnahmen

Das tasks-Array ist null.The tasks array is null.

- oder --or- Das continuationFunction-Argument lautet null.The continuationFunction argument is null.

- oder --or- Das scheduler-Argument lautet null.The scheduler argument is null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.The tasks array is empty or contains a null value.

continuationOptions gibt einen ungültigen TaskContinuationOptions-Wert an.continuationOptions specifies an invalid TaskContinuationOptions value.

Das angegebene CancellationToken wurde bereits verworfen.The provided CancellationToken has already been disposed.

Hinweise

Das noton @ no__t-0 und OnlyOn @ no__t-1 TaskContinuationOptions, das einschränkt, für welches TaskStatus den Status einer Fortsetzung ausführt, ist mit ContinueWhenAll unzulässig.The NotOn* and OnlyOn* TaskContinuationOptions, which constrain for which TaskStatus states a continuation will be executed, are illegal with ContinueWhenAll.

Siehe auch

Gilt für: