Freigeben über


TaskFactory.ContinueWhenAll Methode

Definition

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

Überlädt

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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.

continuationAction
Action<Task[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

Gibt zurück

Task

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

Das tasks-Array ist null.

- oder - Das continuationAction-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Beispiele

Im folgenden Beispiel werden separate Aufgaben gestartet, die einen regulären Ausdruck verwenden, um die Anzahl der Wörter in einer Reihe von Textdateien zu zählen. Die ContinueWhenAll Methode wird verwendet, um eine Aufgabe zu starten, die die Gesamtanzahl der Wörter anzeigt, wenn alle antecedent-Aufgaben abgeschlossen wurden.

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 Aufruf der Methode der Fortsetzungsaufgabe Task.Wait lässt es nicht zu, Ausnahmen zu behandeln, die von den antecedent-Vorgängen ausgelöst werden, sodass das Beispiel die Task.Status Eigenschaft jeder antecedent-Aufgabe untersucht, um zu bestimmen, ob der Vorgang erfolgreich war.

Hinweise

Die ContinueWhenAll Methode führt die continuationAction Stellvertretung aus, wenn alle Vorgänge im tasks Array abgeschlossen sind, unabhängig vom Abschlussstatus.

Ausnahmen, die von Vorgängen im tasks Array ausgelöst werden, stehen der Fortsetzungsaufgabe nicht über die strukturierte Ausnahmebehandlung zur Verfügung. Sie können ermitteln, welche Ausnahmen ausgelöst wurden, indem Sie die Task.Exception Eigenschaft der einzelnen Vorgänge im tasks Array untersuchen. Wenn Sie die strukturierte Ausnahmebehandlung verwenden möchten, um Ausnahmen zu behandeln, die von Aufgaben im tasks Array ausgelöst werden, rufen Sie die Task.WaitAll(Task[]) Methode auf.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationAction
Action<Task[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

cancellationToken
CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.

Gibt zurück

Task

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

- oder - Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.

Das tasks-Array ist null.

- oder - Das continuationAction-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Beispiele

Im folgenden Beispiel wird ein Abbruchtoken erstellt, das an separate Aufgaben übergeben wird, die einen regulären Ausdruck verwenden, um die Anzahl der Wörter in einer Reihe von Textdateien zu zählen. Das Abbruchtoken wird festgelegt, wenn eine Datei nicht gefunden werden kann. Die ContinueWhenAll(Task[], Action{Task[]}, CancellationToken) Methode wird verwendet, um eine Aufgabe zu starten, die die Gesamtanzahl der Wörter anzeigt, wenn alle antecedent-Aufgaben abgeschlossen wurden. Wenn das Abbruchtoken festgelegt ist, das angibt, dass mindestens eine Aufgabe abgebrochen wurde, behandelt es die AggregateException Ausnahme und zeigt eine Fehlermeldung an.

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 die continuationAction Stellvertretung aus, wenn alle Vorgänge im tasks Array abgeschlossen sind, unabhängig vom Abschlussstatus.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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.

continuationAction
Action<Task[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

continuationOptions
TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern. Die Member NotOn* und OnlyOn* werden nicht unterstützt.

Gibt zurück

Task

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

Das tasks-Array ist null.

- oder - Das continuationAction-Argument lautet null.

Das continuationOptions-Argument gibt einen ungültigen Wert an.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Hinweise

Die NotOn* und OnlyOn* TaskContinuationOptions, die einschränken, für welche TaskStatus Staaten eine Fortsetzung ausgeführt werden, sind illegal mit ContinueWhenAll.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationAction
Action<Task[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

cancellationToken
CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.

continuationOptions
TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern.

scheduler
TaskScheduler

Das Objekt, das verwendet wird, um die neue Fortsetzungsaufgabe zu planen.

Gibt zurück

Task

Die neue Fortsetzungsaufgabe.

Ausnahmen

Das tasks-Array ist null.

- oder - Das continuationAction-Argument lautet null.

- oder - Das scheduler-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

continuationOptions gibt einen ungültigen TaskContinuationOptions-Wert an.

Das angegebene CancellationToken wurde bereits verworfen.

Hinweise

Die NotOn* und OnlyOn* TaskContinuationOptions, die einschränken, für welche TaskStatus Staaten eine Fortsetzung ausgeführt werden, sind illegal mit ContinueWhenAll.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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)

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.

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

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

cancellationToken
CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.

continuationOptions
TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern. Die Member NotOn* und OnlyOn* werden nicht unterstützt.

scheduler
TaskScheduler

Das Objekt, das verwendet wird, um die neue Fortsetzungsaufgabe zu planen.

Gibt zurück

Task<TResult>

Die neue Fortsetzungsaufgabe.

Ausnahmen

Das tasks-Array ist null.

- oder - Das continuationFunction-Argument lautet null.

- oder - Das scheduler-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Das continuationOptions-Argument gibt einen ungültigen Wert an.

Ein Element im tasks-Array wurde freigegeben.

- oder - Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.

Hinweise

Die NotOn* und OnlyOn* TaskContinuationOptions, die eingeschränkt wird, für welche TaskStatus Staaten eine Fortsetzung ausgeführt werden, sind illegal mit ContinueWhenAll.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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.

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.

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

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

continuationOptions
TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern. Die Member NotOn* und OnlyOn* werden nicht unterstützt.

Gibt zurück

Task<TResult>

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

Das tasks-Array ist null.

- oder - Das continuationFunction-Argument lautet null.

Das continuationOptions-Argument gibt einen ungültigen Wert an.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Hinweise

Die NotOn* und OnlyOn* TaskContinuationOptions, die eingeschränkt wird, für welche TaskStatus Staaten eine Fortsetzung ausgeführt werden, sind illegal mit ContinueWhenAll.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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)

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.

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

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

cancellationToken
CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.

Gibt zurück

Task<TResult>

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

- oder - Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.

Das tasks-Array ist null.

- oder - Das continuationFunction-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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.

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.

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

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

Gibt zurück

Task<TResult>

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

Das tasks-Array ist null.

- oder - Das continuationFunction-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationAction
Action<Task<TAntecedentResult>[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

cancellationToken
CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.

continuationOptions
TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern. Die Member NotOn* und OnlyOn* werden nicht unterstützt.

scheduler
TaskScheduler

Das Objekt, das verwendet wird, um die neue Fortsetzungsaufgabe zu planen.

Gibt zurück

Task

Die neue Fortsetzungsaufgabe.

Ausnahmen

Das tasks-Array ist null.

- oder - Das continuationAction-Argument lautet null.

- oder - Das scheduler-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

continuationOptions gibt einen ungültigen TaskContinuationOptions-Wert an.

Das angegebene CancellationToken wurde bereits verworfen.

Hinweise

Die NotOn* und OnlyOn* TaskContinuationOptions, die eingeschränkt wird, für welche TaskStatus Staaten eine Fortsetzung ausgeführt werden, sind illegal mit ContinueWhenAll.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationAction
Action<Task<TAntecedentResult>[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

continuationOptions
TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern. Die Member NotOn* und OnlyOn* werden nicht unterstützt.

Gibt zurück

Task

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

Das tasks-Array ist null.

- oder - Das continuationAction-Argument lautet null.

Das continuationOptions-Argument gibt einen ungültigen Wert an.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Hinweise

Die NotOn* und OnlyOn* TaskContinuationOptions, die einschränken, für welche TaskStatus Staaten eine Fortsetzung ausgeführt werden, sind illegal mit ContinueWhenAll.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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

Typparameter

TAntecedentResult

Der Ergebnistyp des vorangehenden tasks-Elements.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationAction
Action<Task<TAntecedentResult>[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

cancellationToken
CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.

Gibt zurück

Task

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

- oder - Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.

Das tasks-Array ist null.

- oder - Das continuationAction-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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.

Parameter

tasks
Task<TAntecedentResult>[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationAction
Action<Task<TAntecedentResult>[]>

Der Aktionsdelegat, der ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

Gibt zurück

Task

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

Das tasks-Array ist null.

- oder - Das continuationAction-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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.

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationFunction
Func<Task[],TResult>

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

Gibt zurück

Task<TResult>

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

Das tasks-Array ist null.

- oder - Das continuationFunction-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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)

Typparameter

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationFunction
Func<Task[],TResult>

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

cancellationToken
CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.

Gibt zurück

Task<TResult>

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

- oder - Die CancellationTokenSource, die cancellationToken erstellt hat, wurde bereits freigegeben.

Das tasks-Array ist null.

- oder - Das continuationFunction-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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.

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationFunction
Func<Task[],TResult>

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

continuationOptions
TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern. Die Member NotOn* und OnlyOn* werden nicht unterstützt.

Gibt zurück

Task<TResult>

Die neue Fortsetzungsaufgabe.

Ausnahmen

Ein Element im tasks-Array wurde freigegeben.

Das tasks-Array ist null.

- oder - Das continuationFunction-Argument lautet null.

Das continuationOptions-Argument gibt einen ungültigen Wert an.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

Hinweise

Die NotOn* und OnlyOn* TaskContinuationOptions, die eingeschränkt wird, für welche TaskStatus Staaten eine Fortsetzung ausgeführt werden, sind illegal mit ContinueWhenAll.

Siehe auch

Gilt für

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

Erstellt eine Fortsetzungsaufgabe, die beginnt, wenn ein Satz angegebener Aufgaben abgeschlossen wurde.

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)

Typparameter

TResult

Der Typ des Ergebnisses, das vom continuationFunction-Delegaten zurückgegeben und der erstellten Aufgabe zugeordnet wird.

Parameter

tasks
Task[]

Das Array von Aufgaben, mit denen fortgefahren wird.

continuationFunction
Func<Task[],TResult>

Der Funktionsdelegat, der asynchron ausgeführt werden soll, wenn alle Aufgaben im tasks-Array abgeschlossen wurden.

cancellationToken
CancellationToken

Das Abbruchtoken, das der neuen Fortsetzungsaufgabe zugeordnet werden soll.

continuationOptions
TaskContinuationOptions

Eine bitweise Kombination der Enumerationswerte, die das Verhalten der neuen Fortsetzungsaufgabe steuern. Die Member NotOn* und OnlyOn* werden nicht unterstützt.

scheduler
TaskScheduler

Das Objekt, das verwendet wird, um die neue Fortsetzungsaufgabe zu planen.

Gibt zurück

Task<TResult>

Die neue Fortsetzungsaufgabe.

Ausnahmen

Das tasks-Array ist null.

- oder - Das continuationFunction-Argument lautet null.

- oder - Das scheduler-Argument lautet null.

Das tasks-Array ist leer oder enthält einen NULL-Wert.

continuationOptions gibt einen ungültigen TaskContinuationOptions-Wert an.

Das angegebene CancellationToken wurde bereits verworfen.

Hinweise

Die NotOn* und OnlyOn* TaskContinuationOptions, die eingeschränkt wird, für welche TaskStatus Staaten eine Fortsetzung ausgeführt werden, sind illegal mit ContinueWhenAll.

Siehe auch

Gilt für