TaskFactory.ContinueWhenAll Methode

Definitie

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

Overloads

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Parameters

tasks
Task[]

De matrix met taken waaruit u wilt doorgaan.

continuationAction
Action<Task[]>

De gedelegeerde van de actie die moet worden uitgevoerd wanneer alle taken in de tasks matrix zijn voltooid.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

De tasks matrix is null.

– of –

Het continuationAction argument is null.

De tasks matrix is leeg of bevat een null-waarde.

Voorbeelden

In het volgende voorbeeld worden afzonderlijke taken gestart die een reguliere expressie gebruiken om het aantal woorden in een set tekstbestanden te tellen. De ContinueWhenAll methode wordt gebruikt om een taak te starten die het totale aantal woorden weergeeft wanneer alle antecedente taken zijn voltooid.

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

De aanroep van de methode van Task.Wait de vervolgtaak staat niet toe dat uitzonderingen worden verwerkt die worden gegenereerd door de antecedent-taken, dus in het voorbeeld wordt de Task.Status eigenschap van elke antecedent-taak onderzocht om te bepalen of de taak is geslaagd.

Opmerkingen

De ContinueWhenAll methode voert de continuationAction gedelegeerde uit wanneer alle taken in de tasks matrix zijn voltooid, ongeacht de voltooiingsstatus.

Uitzonderingen die worden gegenereerd door taken in de tasks matrix, zijn niet beschikbaar voor de vervolgtaak via gestructureerde uitzonderingsafhandeling. U kunt bepalen welke uitzonderingen zijn gegenereerd door de Task.Exception eigenschap van elke taak in de tasks matrix te onderzoeken. Als u gestructureerde uitzonderingsafhandeling wilt gebruiken om uitzonderingen af te handelen die zijn gegenereerd door taken in de tasks matrix, roept u de Task.WaitAll(Task[]) methode aan.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Parameters

tasks
Task[]

De matrix met taken waaruit u wilt doorgaan.

continuationAction
Action<Task[]>

De gedelegeerde van de actie die moet worden uitgevoerd wanneer alle taken in de tasks matrix zijn voltooid.

cancellationToken
CancellationToken

Het annuleringstoken dat moet worden toegewezen aan de nieuwe vervolgtaak.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

– of –

De CancellationTokenSource gemaakte cancellationToken is al verwijderd.

De tasks matrix is null.

– of –

Het continuationAction argument is null.

De tasks matrix is leeg of bevat een null-waarde.

Voorbeelden

In het volgende voorbeeld wordt een annuleringstoken gemaakt dat wordt doorgegeven aan afzonderlijke taken die een reguliere expressie gebruiken om het aantal woorden in een set tekstbestanden te tellen. Het annuleringstoken is ingesteld als een bestand niet kan worden gevonden. De ContinueWhenAll(Task[], Action{Task[]}, CancellationToken) methode wordt gebruikt om een taak te starten die het totale aantal woorden weergeeft wanneer alle antecedente taken zijn voltooid. Als het annuleringstoken is ingesteld, wat aangeeft dat een of meer taken zijn geannuleerd, wordt de AggregateException uitzondering verwerkt en wordt een foutbericht weergegeven.

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.

Opmerkingen

Met deze methode wordt de continuationAction gedelegeerde uitgevoerd wanneer alle taken in de tasks matrix zijn voltooid, ongeacht de voltooiingsstatus.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Parameters

tasks
Task[]

De matrix met taken waaruit u wilt doorgaan.

continuationAction
Action<Task[]>

De gedelegeerde van de actie die moet worden uitgevoerd wanneer alle taken in de tasks matrix zijn voltooid.

continuationOptions
TaskContinuationOptions

Een bitsgewijze combinatie van de opsommingswaarden waarmee het gedrag van de nieuwe vervolgtaak wordt bepaald. De leden NotOn* en OnlyOn* worden niet ondersteund.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

De tasks matrix is null.

– of –

Het continuationAction argument is null.

Het continuationOptions argument geeft een ongeldige waarde op.

De tasks matrix is leeg of bevat een null-waarde.

Opmerkingen

De NotOn* en OnlyOn* TaskContinuationOptions, die beperking waarin staat dat TaskStatus een voortzetting wordt uitgevoerd, zijn illegaal met ContinueWhenAll.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Parameters

tasks
Task[]

De matrix met taken waaruit u wilt doorgaan.

continuationAction
Action<Task[]>

De gedelegeerde van de actie die moet worden uitgevoerd wanneer alle taken in de tasks matrix zijn voltooid.

cancellationToken
CancellationToken

Het annuleringstoken dat moet worden toegewezen aan de nieuwe vervolgtaak.

continuationOptions
TaskContinuationOptions

Een bitsgewijze combinatie van de opsommingswaarden waarmee het gedrag van de nieuwe vervolgtaak wordt bepaald.

scheduler
TaskScheduler

Het object dat wordt gebruikt om de nieuwe vervolgtaak te plannen.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

De tasks matrix is null.

– of –

Het continuationAction argument is null.

– of –

Het scheduler argument is null.

De tasks matrix is leeg of bevat een null-waarde.

continuationOptions geeft een ongeldige TaskContinuationOptions waarde op.

De opgegeven CancellationToken is al verwijderd.

Opmerkingen

De NotOn* en OnlyOn* TaskContinuationOptions, die beperking waarin staat dat TaskStatus een voortzetting wordt uitgevoerd, zijn illegaal met ContinueWhenAll.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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)

Type parameters

TAntecedentResult

Het type van het resultaat van de antecedent tasks.

TResult

Het type resultaat dat wordt geretourneerd door de continuationFunction gemachtigde en gekoppeld aan de gemaakte taak.

Parameters

tasks
Task<TAntecedentResult>[]

De matrix met taken waaruit u wilt doorgaan.

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

De gedelegeerde van de functie om asynchroon uit te voeren wanneer alle taken in de tasks matrix zijn voltooid.

cancellationToken
CancellationToken

Het annuleringstoken dat moet worden toegewezen aan de nieuwe vervolgtaak.

continuationOptions
TaskContinuationOptions

Een bitsgewijze combinatie van de opsommingswaarden waarmee het gedrag van de nieuwe vervolgtaak wordt bepaald. De leden NotOn* en OnlyOn* worden niet ondersteund.

scheduler
TaskScheduler

Het object dat wordt gebruikt om de nieuwe vervolgtaak te plannen.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

De tasks matrix is null.

– of –

Het continuationFunction argument is null.

– of –

Het scheduler argument is null.

De tasks matrix is leeg of bevat een null-waarde.

Het continuationOptions argument geeft een ongeldige waarde op.

Er is een element in de tasks matrix verwijderd.

– of –

De CancellationTokenSource gemaakte cancellationToken is al verwijderd.

Opmerkingen

De NotOn* en OnlyOn* TaskContinuationOptions, die beperking waarin staat dat TaskStatus een voortzetting wordt uitgevoerd, zijn illegaal met ContinueWhenAll.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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)

Type parameters

TAntecedentResult

Het type van het resultaat van de antecedent tasks.

TResult

Het type resultaat dat wordt geretourneerd door de continuationFunction gemachtigde en gekoppeld aan de gemaakte taak.

Parameters

tasks
Task<TAntecedentResult>[]

De matrix met taken waaruit u wilt doorgaan.

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

De gedelegeerde van de functie om asynchroon uit te voeren wanneer alle taken in de tasks matrix zijn voltooid.

continuationOptions
TaskContinuationOptions

Een bitsgewijze combinatie van de opsommingswaarden waarmee het gedrag van de nieuwe vervolgtaak wordt bepaald. De leden NotOn* en OnlyOn* worden niet ondersteund.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

De tasks matrix is null.

– of –

Het continuationFunction argument is null.

Het continuationOptions argument geeft een ongeldige waarde op.

De tasks matrix is leeg of bevat een null-waarde.

Opmerkingen

De NotOn* en OnlyOn* TaskContinuationOptions, die beperking waarin staat dat TaskStatus een voortzetting wordt uitgevoerd, zijn illegaal met ContinueWhenAll.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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)

Type parameters

TAntecedentResult

Het type van het resultaat van de antecedent tasks.

TResult

Het type resultaat dat wordt geretourneerd door de continuationFunction gemachtigde en gekoppeld aan de gemaakte taak.

Parameters

tasks
Task<TAntecedentResult>[]

De matrix met taken waaruit u wilt doorgaan.

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

De gedelegeerde van de functie om asynchroon uit te voeren wanneer alle taken in de tasks matrix zijn voltooid.

cancellationToken
CancellationToken

Het annuleringstoken dat moet worden toegewezen aan de nieuwe vervolgtaak.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

– of –

De CancellationTokenSource gemaakte cancellationToken is al verwijderd.

De tasks matrix is null.

– of –

Het continuationFunction argument is null.

De tasks matrix is leeg of bevat een null-waarde.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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)

Type parameters

TAntecedentResult

Het type van het resultaat van de antecedent tasks.

TResult

Het type resultaat dat wordt geretourneerd door de continuationFunction gemachtigde en gekoppeld aan de gemaakte taak.

Parameters

tasks
Task<TAntecedentResult>[]

De matrix met taken waaruit u wilt doorgaan.

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

De gedelegeerde van de functie om asynchroon uit te voeren wanneer alle taken in de tasks matrix zijn voltooid.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

De tasks matrix is null.

– of –

Het continuationFunction argument is null.

De tasks matrix is leeg of bevat een null-waarde.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Type parameters

TAntecedentResult

Het type van het resultaat van de antecedent tasks.

Parameters

tasks
Task<TAntecedentResult>[]

De matrix met taken waaruit u wilt doorgaan.

continuationAction
Action<Task<TAntecedentResult>[]>

De gedelegeerde van de actie die moet worden uitgevoerd wanneer alle taken in de tasks matrix zijn voltooid.

cancellationToken
CancellationToken

Het annuleringstoken dat moet worden toegewezen aan de nieuwe vervolgtaak.

continuationOptions
TaskContinuationOptions

Een bitsgewijze combinatie van de opsommingswaarden waarmee het gedrag van de nieuwe vervolgtaak wordt bepaald. De leden NotOn* en OnlyOn* worden niet ondersteund.

scheduler
TaskScheduler

Het object dat wordt gebruikt om de nieuwe vervolgtaak te plannen.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

De tasks matrix is null.

– of –

Het continuationAction argument is null.

– of –

Het scheduler argument is null.

De tasks matrix is leeg of bevat een null-waarde.

continuationOptions geeft een ongeldige TaskContinuationOptions waarde op.

De opgegeven CancellationToken is al verwijderd.

Opmerkingen

De NotOn* en OnlyOn* TaskContinuationOptions, die beperking waarin staat dat TaskStatus een voortzetting wordt uitgevoerd, zijn illegaal met ContinueWhenAll.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Type parameters

TAntecedentResult

Het type van het resultaat van de antecedent tasks.

Parameters

tasks
Task<TAntecedentResult>[]

De matrix met taken waaruit u wilt doorgaan.

continuationAction
Action<Task<TAntecedentResult>[]>

De gedelegeerde van de actie die moet worden uitgevoerd wanneer alle taken in de tasks matrix zijn voltooid.

continuationOptions
TaskContinuationOptions

Een bitsgewijze combinatie van de opsommingswaarden waarmee het gedrag van de nieuwe vervolgtaak wordt bepaald. De leden NotOn* en OnlyOn* worden niet ondersteund.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

De tasks matrix is null.

– of –

Het continuationAction argument is null.

Het continuationOptions argument geeft een ongeldige waarde op.

De tasks matrix is leeg of bevat een null-waarde.

Opmerkingen

De NotOn* en OnlyOn* TaskContinuationOptions, die beperking waarin staat dat TaskStatus een voortzetting wordt uitgevoerd, zijn illegaal met ContinueWhenAll.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Type parameters

TAntecedentResult

Het type van het resultaat van de antecedent tasks.

Parameters

tasks
Task<TAntecedentResult>[]

De matrix met taken waaruit u wilt doorgaan.

continuationAction
Action<Task<TAntecedentResult>[]>

De gedelegeerde van de actie die moet worden uitgevoerd wanneer alle taken in de tasks matrix zijn voltooid.

cancellationToken
CancellationToken

Het annuleringstoken dat moet worden toegewezen aan de nieuwe vervolgtaak.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

– of –

De CancellationTokenSource gemaakte cancellationToken is al verwijderd.

De tasks matrix is null.

– of –

Het continuationAction argument is null.

De tasks matrix is leeg of bevat een null-waarde.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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

Type parameters

TAntecedentResult

Het type van het resultaat van de antecedent tasks.

Parameters

tasks
Task<TAntecedentResult>[]

De matrix met taken waaruit u wilt doorgaan.

continuationAction
Action<Task<TAntecedentResult>[]>

De gedelegeerde van de actie die moet worden uitgevoerd wanneer alle taken in de tasks matrix zijn voltooid.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

De tasks matrix is null.

– of –

Het continuationAction argument is null.

De tasks matrix is leeg of bevat een null-waarde.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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)

Type parameters

TResult

Het type resultaat dat wordt geretourneerd door de continuationFunction gemachtigde en gekoppeld aan de gemaakte taak.

Parameters

tasks
Task[]

De matrix met taken waaruit u wilt doorgaan.

continuationFunction
Func<Task[],TResult>

De gedelegeerde van de functie om asynchroon uit te voeren wanneer alle taken in de tasks matrix zijn voltooid.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

De tasks matrix is null.

– of –

Het continuationFunction argument is null.

De tasks matrix is leeg of bevat een null-waarde.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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)

Type parameters

TResult

Het type resultaat dat wordt geretourneerd door de continuationFunction gemachtigde en gekoppeld aan de gemaakte taak.

Parameters

tasks
Task[]

De matrix met taken waaruit u wilt doorgaan.

continuationFunction
Func<Task[],TResult>

De gedelegeerde van de functie om asynchroon uit te voeren wanneer alle taken in de tasks matrix zijn voltooid.

cancellationToken
CancellationToken

Het annuleringstoken dat moet worden toegewezen aan de nieuwe vervolgtaak.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

– of –

De CancellationTokenSource gemaakte cancellationToken is al verwijderd.

De tasks matrix is null.

– of –

Het continuationFunction argument is null.

De tasks matrix is leeg of bevat een null-waarde.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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)

Type parameters

TResult

Het type resultaat dat wordt geretourneerd door de continuationFunction gemachtigde en gekoppeld aan de gemaakte taak.

Parameters

tasks
Task[]

De matrix met taken waaruit u wilt doorgaan.

continuationFunction
Func<Task[],TResult>

De gedelegeerde van de functie om asynchroon uit te voeren wanneer alle taken in de tasks matrix zijn voltooid.

continuationOptions
TaskContinuationOptions

Een bitsgewijze combinatie van de opsommingswaarden waarmee het gedrag van de nieuwe vervolgtaak wordt bepaald. De leden NotOn* en OnlyOn* worden niet ondersteund.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

Er is een element in de tasks matrix verwijderd.

De tasks matrix is null.

– of –

Het continuationFunction argument is null.

Het continuationOptions argument geeft een ongeldige waarde op.

De tasks matrix is leeg of bevat een null-waarde.

Opmerkingen

De NotOn* en OnlyOn* TaskContinuationOptions, die beperking waarin staat dat TaskStatus een voortzetting wordt uitgevoerd, zijn illegaal met ContinueWhenAll.

Zie ook

Van toepassing op

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

Hiermee maakt u een vervolgtaak die begint wanneer een set opgegeven taken is voltooid.

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)

Type parameters

TResult

Het type resultaat dat wordt geretourneerd door de continuationFunction gemachtigde en gekoppeld aan de gemaakte taak.

Parameters

tasks
Task[]

De matrix met taken waaruit u wilt doorgaan.

continuationFunction
Func<Task[],TResult>

De gedelegeerde van de functie om asynchroon uit te voeren wanneer alle taken in de tasks matrix zijn voltooid.

cancellationToken
CancellationToken

Het annuleringstoken dat moet worden toegewezen aan de nieuwe vervolgtaak.

continuationOptions
TaskContinuationOptions

Een bitsgewijze combinatie van de opsommingswaarden waarmee het gedrag van de nieuwe vervolgtaak wordt bepaald. De leden NotOn* en OnlyOn* worden niet ondersteund.

scheduler
TaskScheduler

Het object dat wordt gebruikt om de nieuwe vervolgtaak te plannen.

Retouren

De nieuwe vervolgtaak.

Uitzonderingen

De tasks matrix is null.

– of –

Het continuationFunction argument is null.

– of –

Het scheduler argument is null.

De tasks matrix is leeg of bevat een null-waarde.

continuationOptions geeft een ongeldige TaskContinuationOptions waarde op.

De opgegeven CancellationToken is al verwijderd.

Opmerkingen

De NotOn* en OnlyOn* TaskContinuationOptions, die beperking waarin staat dat TaskStatus een voortzetting wordt uitgevoerd, zijn illegaal met ContinueWhenAll.

Zie ook

Van toepassing op