Task<TResult>.ContinueWith Methode

Definition

Erstellt eine Fortsetzungsaufgabe, die ausgeführt wird, wenn eine andere Aufgabe abgeschlossen ist.

Überlädt

Name Beschreibung
ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith(Action<Task<TResult>,Object>, Object, TaskScheduler)

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith(Action<Task<TResult>,Object>, Object, TaskContinuationOptions)

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken)

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith(Action<Task<TResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Erstellt eine Fortsetzung, die gemäß der in continuationOptions. .

ContinueWith(Action<Task<TResult>>, TaskContinuationOptions)

Erstellt eine Fortsetzung, die gemäß der in continuationOptions. .

ContinueWith(Action<Task<TResult>>, CancellationToken)

Erstellt eine abbruchfähige Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

ContinueWith(Action<Task<TResult>,Object>, Object)

Erstellt eine Fortsetzung, die Statusinformationen übergeben wird und nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith(Action<Task<TResult>>)

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn die Zielaufgabe abgeschlossen ist.

ContinueWith(Action<Task<TResult>>, TaskScheduler)

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Erstellt eine Fortsetzung, die gemäß der in continuationOptions. .

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskScheduler)

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken)

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskContinuationOptions)

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskContinuationOptions)

Erstellt eine Fortsetzung, die gemäß der in continuationOptions. .

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken)

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object)

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>)

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskScheduler)

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^, System::Object ^> ^ continuationAction, System::Object ^ state, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object> continuationAction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object?> continuationAction, object? state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>, obj> * obj * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult), Object), state As Object, cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task

Parameter

continuationAction
Action<Task<TResult>,Object>

Eine Aktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei Ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsaktion verwendet werden sollen.

cancellationToken
CancellationToken

Das CancellationToken wird der neuen Fortsetzungsaufgabe zugewiesen.

continuationOptions
TaskContinuationOptions

Optionen für den Zeitpunkt der Planung der Fortsetzung und deren Verhalten. Dazu gehören Kriterien, z OnlyOnCanceled. B. , sowie Ausführungsoptionen, wie z ExecuteSynchronously. B. .

scheduler
TaskScheduler

The TaskScheduler to associate with the continuation task and to use for its execution.

Gibt zurück

Eine neue Fortsetzung Task.

Ausnahmen

Das scheduler Argument ist null.

Das continuationOptions Argument gibt einen ungültigen Wert für TaskContinuationOptions.

Die bereitgestellte Datei CancellationToken wurde bereits verworfen.

Hinweise

Die zurückgegebene Task Aufgabe wird erst für die Ausführung geplant, wenn der aktuelle Vorgang abgeschlossen ist. Wenn die durch den continuationOptions Parameter angegebenen Kriterien nicht erfüllt sind, wird die Fortsetzungsaufgabe statt geplant abgebrochen.

Weitere Informationen

Gilt für:

ContinueWith(Action<Task<TResult>,Object>, Object, TaskScheduler)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^, System::Object ^> ^ continuationAction, System::Object ^ state, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object> continuationAction, object state, System.Threading.Tasks.TaskScheduler scheduler);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object?> continuationAction, object? state, System.Threading.Tasks.TaskScheduler scheduler);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>, obj> * obj * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult), Object), state As Object, scheduler As TaskScheduler) As Task

Parameter

continuationAction
Action<Task<TResult>,Object>

Eine Aktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei Ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsaktion verwendet werden sollen.

scheduler
TaskScheduler

The TaskScheduler to associate with the continuation task and to use for its execution.

Gibt zurück

Eine neue Fortsetzung Task.

Ausnahmen

Das scheduler Argument ist null.

Hinweise

Der zurückgegebene Task Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith(Action<Task<TResult>,Object>, Object, TaskContinuationOptions)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^, System::Object ^> ^ continuationAction, System::Object ^ state, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object> continuationAction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object?> continuationAction, object? state, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>, obj> * obj * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult), Object), state As Object, continuationOptions As TaskContinuationOptions) As Task

Parameter

continuationAction
Action<Task<TResult>,Object>

Eine Aktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei Ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsaktion verwendet werden sollen.

continuationOptions
TaskContinuationOptions

Optionen für den Zeitpunkt der Planung der Fortsetzung und deren Verhalten. Dazu gehören Kriterien, z OnlyOnCanceled. B. , sowie Ausführungsoptionen, wie z ExecuteSynchronously. B. .

Gibt zurück

Eine neue Fortsetzung Task.

Ausnahmen

Das continuationAction Argument ist null.

Das continuationOptions Argument gibt einen ungültigen Wert für TaskContinuationOptions.

Hinweise

Die zurückgegebene Task Aufgabe wird erst für die Ausführung geplant, wenn der aktuelle Vorgang abgeschlossen ist. Wenn die durch den continuationOptions Parameter angegebenen Fortsetzungskriterien nicht erfüllt sind, wird die Fortsetzungsaufgabe statt geplant abgebrochen.

Weitere Informationen

Gilt für:

ContinueWith(Action<Task<TResult>,Object>, Object, CancellationToken)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^, System::Object ^> ^ continuationAction, System::Object ^ state, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object> continuationAction, object state, System.Threading.CancellationToken cancellationToken);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object?> continuationAction, object? state, System.Threading.CancellationToken cancellationToken);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>, obj> * obj * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult), Object), state As Object, cancellationToken As CancellationToken) As Task

Parameter

continuationAction
Action<Task<TResult>,Object>

Eine Aktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei Ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsaktion verwendet werden sollen.

cancellationToken
CancellationToken

Das CancellationToken wird der neuen Fortsetzungsaufgabe zugewiesen.

Gibt zurück

Eine neue Fortsetzung Task.

Ausnahmen

Das continuationAction Argument ist null.

Die bereitgestellte Datei CancellationToken wurde bereits verworfen.

Hinweise

Der zurückgegebene Task Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith(Action<Task<TResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die gemäß der in continuationOptions. .

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>> continuationAction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult)), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task

Parameter

continuationAction
Action<Task<TResult>>

Eine Aktion, die gemäß der in der Angegebenen continuationOptionsBedingung ausgeführt werden soll. Wenn sie ausgeführt wird, wird die Stellvertretung als Argument an die abgeschlossene Aufgabe übergeben.

cancellationToken
CancellationToken

Das CancellationToken wird der neuen Fortsetzungsaufgabe zugewiesen.

continuationOptions
TaskContinuationOptions

Optionen für den Zeitpunkt der Planung der Fortsetzung und deren Verhalten. Dazu gehören Kriterien, z OnlyOnCanceled. B. , sowie Ausführungsoptionen, wie z ExecuteSynchronously. B. .

scheduler
TaskScheduler

The TaskScheduler to associate with the continuation task and to use for its execution.

Gibt zurück

Eine neue Fortsetzung Task.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

-oder-

Die CancellationTokenSource erstellte Datei cancellationToken wurde bereits gelöscht.

Das continuationAction Argument ist null.

-oder-

Das scheduler Argument ist null.

Das continuationOptions Argument gibt einen ungültigen Wert für TaskContinuationOptions.

Hinweise

Die zurückgegebene Task Aufgabe wird erst für die Ausführung geplant, wenn der aktuelle Vorgang abgeschlossen ist. Wenn die durch den continuationOptions Parameter angegebenen Kriterien nicht erfüllt sind, wird die Fortsetzungsaufgabe statt geplant abgebrochen. Weitere Informationen finden Sie unter Verketten von Aufgaben mithilfe von Fortsetzungsaufgaben.

Weitere Informationen

Gilt für:

ContinueWith(Action<Task<TResult>>, TaskContinuationOptions)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die gemäß der in continuationOptions. .

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^> ^ continuationAction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>> continuationAction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult)), continuationOptions As TaskContinuationOptions) As Task

Parameter

continuationAction
Action<Task<TResult>>

Eine Aktion gemäß der in continuationOptions. Wenn sie ausgeführt wird, wird die Stellvertretung als Argument an die abgeschlossene Aufgabe übergeben.

continuationOptions
TaskContinuationOptions

Optionen für den Zeitpunkt der Planung der Fortsetzung und deren Verhalten. Dazu gehören Kriterien, z OnlyOnCanceled. B. , sowie Ausführungsoptionen, wie z ExecuteSynchronously. B. .

Gibt zurück

Eine neue Fortsetzung Task.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

Das continuationAction Argument ist null.

Das continuationOptions Argument gibt einen ungültigen Wert für TaskContinuationOptions.

Hinweise

Die zurückgegebene Task Aufgabe wird erst für die Ausführung geplant, wenn der aktuelle Vorgang abgeschlossen ist. Wenn die durch den continuationOptions Parameter angegebenen Fortsetzungskriterien nicht erfüllt sind, wird die Fortsetzungsaufgabe statt geplant abgebrochen.

Weitere Informationen finden Sie unter Verketten von Aufgaben mithilfe von Fortsetzungsaufgaben.

Weitere Informationen

Gilt für:

ContinueWith(Action<Task<TResult>>, CancellationToken)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine abbruchfähige Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^> ^ continuationAction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>> continuationAction, System.Threading.CancellationToken cancellationToken);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult)), cancellationToken As CancellationToken) As Task

Parameter

continuationAction
Action<Task<TResult>>

Eine Aktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Wenn sie ausgeführt wird, wird der Delegat als Argument an die abgeschlossene Aufgabe übergeben.

cancellationToken
CancellationToken

Das Abbruchtoken, das an die neue Fortsetzungsaufgabe übergeben wird.

Gibt zurück

Eine neue Fortsetzungsaufgabe.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

-oder-

Die CancellationTokenSource erstellte Datei cancellationToken wurde gelöscht.

Das continuationAction Argument ist null.

Beispiele

Im folgenden Beispiel wird eine vorgegangene Aufgabe erstellt, die die Sieve von Eratosthenes verwendet, um die Primzahlen zwischen 1 und einem vom Benutzer eingegebenen Wert zu berechnen. Ein Array wird verwendet, um Informationen zu den Primzahlen zu enthalten. Der Arrayindex stellt die Zahl dar, und der Wert des Elements gibt an, ob diese Zahl zusammengesetzt ist (ihr Wert ist true) oder Prim (der Wert ist false). Diese Aufgabe wird dann an eine Fortsetzungsaufgabe übergeben, die für das Extrahieren der Primzahlen aus dem ganzzahligen Array und deren Anzeige verantwortlich ist.

Ein Abbruchtoken wird sowohl an die vorgegangene als auch an die Fortsetzungsaufgabe übergeben. Ein System.Timers.Timer Objekt wird verwendet, um einen Timeoutwert von 100 Millisekunden zu definieren. Wenn das Ereignis ausgelöst wird, wird die CancellationTokenSource.Cancel Methode aufgerufen, und das Abbruchtoken wird verwendet, um den Abbruch der Aufgaben anzufordern.

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Timers = System.Timers;

public class Example
{
   static CancellationTokenSource ts;
   
   public static void Main(string[] args)
   {
      int upperBound = args.Length >= 1 ? Int32.Parse(args[0]) : 200;
      ts = new CancellationTokenSource();
      CancellationToken token = ts.Token;
      Timers.Timer timer = new Timers.Timer(3000);
      timer.Elapsed += TimedOutEvent;
      timer.AutoReset = false;
      timer.Enabled = true;

      var t1 = Task.Run(() => { // True = composite.
                                // False = prime.
                                bool[] values = new bool[upperBound + 1];
                                for (int ctr = 2; ctr <= (int) Math.Sqrt(upperBound); ctr++) {
                                   if (!values[ctr] ) {
                                      for (int product = ctr * ctr; product <= upperBound;
                                                                    product = product + ctr)
                                         values[product] = true;
                                   }
                                   token.ThrowIfCancellationRequested();
                                }
                                return values; }, token);

      var t2 = t1.ContinueWith( (antecedent) => { // Create a list of prime numbers.
                                                  var  primes = new List<int>();
                                                  token.ThrowIfCancellationRequested();
                                                  bool[] numbers = antecedent.Result;
                                                  string output = String.Empty;

                                                  for (int ctr = 1; ctr <= numbers.GetUpperBound(0); ctr++)
                                                     if (!numbers[ctr] )
                                                        primes.Add(ctr);

                                                  // Create the output string.
                                                  for (int ctr = 0; ctr < primes.Count; ctr++) {
                                                     token.ThrowIfCancellationRequested();
                                                     output += primes[ctr].ToString("N0");
                                                     if (ctr < primes.Count - 1)
                                                        output += ",  ";
                                                     if ((ctr + 1) % 8 == 0)
                                                        output += Environment.NewLine;
                                                  }
                                                  //Display the result.
                                                  Console.WriteLine("Prime numbers from 1 to {0}:\n",
                                                                    upperBound);
                                                  Console.WriteLine(output);
                                                }, token);
      try {
         t2.Wait();
      }
      catch (AggregateException ae) {
         foreach (var e in ae.InnerExceptions) {
            if (e.GetType() == typeof(TaskCanceledException))
               Console.WriteLine("The operation was cancelled.");
            else
               Console.WriteLine("ELSE: {0}: {1}", e.GetType().Name, e.Message);
         }
      }
      finally {
         ts.Dispose();
      }
   }

   private static void TimedOutEvent(Object source, Timers.ElapsedEventArgs e)
   {
      ts.Cancel();
   }
}
// If cancellation is not requested, the example displays output like the following:
//       Prime numbers from 1 to 400:
//
//       1,  2,  3,  5,  7,  11,  13,  17,
//       19,  23,  29,  31,  37,  41,  43,  47,
//       53,  59,  61,  67,  71,  73,  79,  83,
//       89,  97,  101,  103,  107,  109,  113,  127,
//       131,  137,  139,  149,  151,  157,  163,  167,
//       173,  179,  181,  191,  193,  197,  199,  211,
//       223,  227,  229,  233,  239,  241,  251,  257,
//       263,  269,  271,  277,  281,  283,  293,  307,
//       311,  313,  317,  331,  337,  347,  349,  353,
//       359,  367,  373,  379,  383,  389,  397,  401
// If cancellation is requested, the example displays output like the following:
//       The operation was cancelled.
Imports System.Collections.Generic
Imports System.Threading
Imports System.Threading.Tasks
Imports Timers = System.Timers

Module Example
   Dim ts As CancellationTokenSource

   Public Sub Main(args() As String)
      Dim upperBound As Integer = If(args.Length >= 1, CInt(args(0)), 200)
      ts = New CancellationTokenSource()
      Dim token As CancellationToken = ts.Token
      Dim timer As New Timers.Timer(100)
      AddHandler timer.Elapsed, AddressOf TimedOutEvent
      timer.AutoReset = False
      timer.Enabled = True

      Dim t1 = Task.Run(Function()
                          ' True = composite.
                          ' False = prime.
                          Dim values(upperBound) As Boolean
                          For ctr = 2 To CInt(Math.Sqrt(upperBound))
                             If values(ctr) = False Then
                                For product = ctr * ctr To upperBound Step ctr
                                   values(product) = True
                                Next
                             End If
                             token.ThrowIfCancellationRequested()
                          Next
                          Return values
                       End Function, token)

      Dim t2 = t1.ContinueWith(Sub(antecedent)
                                  ' Create a list of prime numbers.
                                  Dim primes As New List(Of Integer)()
                                  token.ThrowIfCancellationRequested()
                                  Dim numbers As Boolean() = antecedent.Result
                                  Dim output As String = String.Empty
                                  
                                  For ctr As Integer = 1 To numbers.GetUpperBound(0)
                                     If numbers(ctr) = False Then primes.Add(ctr)
                                  Next

                                  ' Create the output string.
                                  For ctr As Integer = 0 To primes.Count - 1
                                     token.ThrowIfCancellationRequested()
                                     output += primes(ctr).ToString("N0")
                                     If ctr < primes.Count - 1 Then output += ",  "
                                     If (ctr + 1) Mod 8 = 0 Then output += vbCrLf
                                  Next
                                  'Display the result.
                                  Console.WriteLine("Prime numbers from 1 to {0}:{1}",
                                                    upperBound, vbCrLf)
                                  Console.WriteLine(output)
                               End Sub, token)
      Try
         t2.Wait()
      Catch ae As AggregateException
         For Each e In ae.InnerExceptions
            If e.GetType Is GetType(TaskCanceledException) Then
               Console.WriteLine("The operation was cancelled.")
            Else
               Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message)
            End If
         Next
      Finally
         ts.Dispose()
      End Try
   End Sub
   
   Private Sub TimedOutEvent(source As Object, e As Timers.ElapsedEventArgs)
      ts.Cancel()
   End Sub
End Module
' If cancellation is not requested, the example displays output like the following:
'       Prime numbers from 1 to 400:
'
'       1,  2,  3,  5,  7,  11,  13,  17,
'       19,  23,  29,  31,  37,  41,  43,  47,
'       53,  59,  61,  67,  71,  73,  79,  83,
'       89,  97,  101,  103,  107,  109,  113,  127,
'       131,  137,  139,  149,  151,  157,  163,  167,
'       173,  179,  181,  191,  193,  197,  199,  211,
'       223,  227,  229,  233,  239,  241,  251,  257,
'       263,  269,  271,  277,  281,  283,  293,  307,
'       311,  313,  317,  331,  337,  347,  349,  353,
'       359,  367,  373,  379,  383,  389,  397,  401
' If cancellation is requested, the example displays output like the following:
'       The operation was cancelled.

In der Regel führt das Bereitstellen eines Werts von ca. 100.000 dazu, dass das Timeoutintervall abläuft und das Timer.Elapsed Ereignis ausgelöst wird und die Abbruchanforderung festgelegt wird.

Hinweise

Der zurückgegebene Task Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith(Action<Task<TResult>,Object>, Object)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die Statusinformationen übergeben wird und nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^, System::Object ^> ^ continuationAction, System::Object ^ state);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object> continuationAction, object state);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>,object?> continuationAction, object? state);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>, obj> * obj -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult), Object), state As Object) As Task

Parameter

continuationAction
Action<Task<TResult>,Object>

Eine Aktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsaktion verwendet werden sollen.

Gibt zurück

Eine neue Fortsetzung Task.

Ausnahmen

Das continuationAction Argument ist null.

Beispiele

Im folgenden Beispiel wird eine Aufgabe erstellt, die eine ganze Zahl zwischen 2 und 20 übergeben wird, und gibt ein Array zurück, das die ersten zehn Exponenten (von n1 bis n10) dieser Zahl enthält. Eine Fortsetzungsaufgabe ist dann für die Anzeige der Exponenten verantwortlich. Sie wird sowohl an die vorerkennte als auch die ursprüngliche Zahl übergeben, deren Exponenten den vorerkennten generiert.

using System;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      var cts = new CancellationTokenSource();
      var token = cts.Token;

      // Get an integer to generate a list of its exponents.
      var rnd = new Random();
      var number = rnd.Next(2, 21);
      
      var t = Task.Factory.StartNew( (value) => { int n = (int) value;
                                                  long[] values = new long[10];
                                                  for (int ctr = 1; ctr <= 10; ctr++)
                                                     values[ctr - 1] = (long) Math.Pow(n, ctr);
                                                     
                                                  return values;
                                                }, number);
      var continuation = t.ContinueWith( (antecedent, value) => { Console.WriteLine("Exponents of {0}:", value);
                                                                  for (int ctr = 0; ctr <= 9; ctr++)
                                                                     Console.WriteLine("   {0} {1} {2} = {3:N0}",
                                                                                       value, "\u02C6", ctr + 1,
                                                                                       antecedent.Result[ctr]);
                                                                  Console.WriteLine();
                                                                }, number);
      continuation.Wait();
      cts.Dispose();
   }
}
// The example displays output like the following:
//       Exponents of 2:
//          2 ^ 1 = 2
//          2 ^ 2 = 4
//          2 ^ 3 = 8
//          2 ^ 4 = 16
//          2 ^ 5 = 32
//          2 ^ 6 = 64
//          2 ^ 7 = 128
//          2 ^ 8 = 256
//          2 ^ 9 = 512
//          2 ^ 10 = 1,024
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim cts As New CancellationTokenSource()
      Dim token As CancellationToken = cts.Token

      ' Get an integer to generate a list of its exponents.
      Dim rnd As New Random()
      Dim number As Integer = rnd.Next(2, 21)

      Dim t = Task.Factory.StartNew( Function(value)
                                        Dim n As Integer = CInt(value)
                                        Dim values(9) As Long
                                        For ctr As Integer = 1 To 10
                                           values(ctr - 1) = CLng(Math.Pow(n, ctr))
                                        Next
                                        return values
                                     End Function, number)
      Dim continuation = t.ContinueWith( Sub(antecedent, value)
                                            Console.WriteLine("Exponents of {0}:", value)
                                            For ctr As Integer = 0 To 9
                                               Console.WriteLine("   {0} {1} {2} = {3:N0}",
                                                                 value, ChrW(&h02C6), ctr + 1,
                                                                 antecedent.Result(ctr))
                                            Next
                                            Console.WriteLine()
                                         End Sub, number)
      continuation.Wait()

      cts.Dispose()
   End Sub
End Module
' The example displays output like the following:
'       Exponents of 2:
'          2 ^ 1 = 2
'          2 ^ 2 = 4
'          2 ^ 3 = 8
'          2 ^ 4 = 16
'          2 ^ 5 = 32
'          2 ^ 6 = 64
'          2 ^ 7 = 128
'          2 ^ 8 = 256
'          2 ^ 9 = 512
'          2 ^ 10 = 1,024

Hinweise

Der zurückgegebene Task Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith(Action<Task<TResult>>)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn die Zielaufgabe abgeschlossen ist.

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^> ^ continuationAction);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>> continuationAction);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>> -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult))) As Task

Parameter

continuationAction
Action<Task<TResult>>

Eine Aktion, die ausgeführt werden soll, wenn der vorgegangene Task<TResult> Vorgang abgeschlossen ist. Wenn sie ausgeführt wird, wird die Stellvertretung als Argument an die abgeschlossene Aufgabe übergeben.

Gibt zurück

Eine neue Fortsetzungsaufgabe.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

Das continuationAction Argument ist null.

Beispiele

Im folgenden Beispiel wird eine vorgegangene Aufgabe erstellt, die die Sieve von Eratosthenes verwendet, um die Primzahlen zwischen 1 und einem vom Benutzer eingegebenen Wert zu berechnen. Ein Array wird verwendet, um Informationen zu den Primzahlen zu enthalten. Der Arrayindex stellt die Zahl dar, und der Wert des Elements gibt an, ob diese Zahl zusammengesetzt ist (ihr Wert ist true) oder Prim (der Wert ist false). Diese Aufgabe wird dann an eine Fortsetzungsaufgabe übergeben, die für das Extrahieren der Primzahlen aus dem ganzzahligen Array und deren Anzeige verantwortlich ist.

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   public static void Main(string[] args)
   {
      int upperBound = args.Length >= 1 ? Int32.Parse(args[0]) : 200;

      var t1 = Task.Run(() => { // True = composite.
                                // False = prime.
                                bool[] values = new bool[upperBound + 1];
                                for (int ctr = 2; ctr <= (int) Math.Sqrt(upperBound); ctr++) {
                                   if (!values[ctr]) {
                                      for (int product = ctr * ctr; product <= upperBound;
                                                                    product = product + ctr)
                                         values[product] = true;
                                   }
                                }
                                return values; });
      var t2 = t1.ContinueWith( (antecedent) => { // Create a list of prime numbers.
                                                  var  primes = new List<int>();
                                                  bool[] numbers = antecedent.Result;
                                                  string output = String.Empty;

                                                  for (int ctr = 1; ctr <= numbers.GetUpperBound(0); ctr++)
                                                     if (!numbers[ctr])
                                                        primes.Add(ctr);

                                                  // Create the output string.
                                                  for (int ctr = 0; ctr < primes.Count; ctr++) {
                                                     output += primes[ctr].ToString("N0");
                                                     if (ctr < primes.Count - 1)
                                                        output += ",  ";
                                                     if ((ctr + 1) % 8 == 0)
                                                        output += Environment.NewLine;
                                                  }
                                                  //Display the result.
                                                  Console.WriteLine("Prime numbers from 1 to {0}:\n",
                                                                    upperBound);
                                                  Console.WriteLine(output);
                                                });
      try {
         t2.Wait();
      }
      catch (AggregateException ae) {
         foreach (var e in ae.InnerExceptions)
            Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message);
      }
   }
}
// The example displays output like the following:
//       Prime numbers from 1 to 400:
//
//       1,  2,  3,  5,  7,  11,  13,  17,
//       19,  23,  29,  31,  37,  41,  43,  47,
//       53,  59,  61,  67,  71,  73,  79,  83,
//       89,  97,  101,  103,  107,  109,  113,  127,
//       131,  137,  139,  149,  151,  157,  163,  167,
//       173,  179,  181,  191,  193,  197,  199,  211,
//       223,  227,  229,  233,  239,  241,  251,  257,
//       263,  269,  271,  277,  281,  283,  293,  307,
//       311,  313,  317,  331,  337,  347,  349,  353,
//       359,  367,  373,  379,  383,  389,  397,  401
Imports System.Collections.Generic
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main(args() As String)
      Dim upperBound As Integer = If(args.Length >= 1, CInt(args(0)), 200)

      Dim t1 = Task.Run(Function()
                          ' True = composite.
                          ' False = prime.
                          Dim values(upperBound) As Boolean
                          For ctr = 2 To CInt(Math.Sqrt(upperBound))
                             If values(ctr) = False Then
                                For product = ctr * ctr To upperBound Step ctr
                                   values(product) = True
                                Next
                             End If
                          Next
                          Return values
                       End Function)

      Dim t2 = t1.ContinueWith(Sub(antecedent)
                                  ' Create a list of prime numbers.
                                  Dim primes As New List(Of Integer)()
                                  Dim numbers As Boolean() = antecedent.Result
                                  Dim output As String = String.Empty
                                  
                                  For ctr As Integer = 1 To numbers.GetUpperBound(0)
                                     If numbers(ctr) = False Then primes.Add(ctr)
                                  Next

                                  ' Create the output string.
                                  For ctr As Integer = 0 To primes.Count - 1
                                     output += primes(ctr).ToString("N0")
                                     If ctr < primes.Count - 1 Then output += ",  "
                                     If (ctr + 1) Mod 8 = 0 Then output += vbCrLf
                                  Next
                                  'Display the result.
                                  Console.WriteLine("Prime numbers from 1 to {0}:{1}",
                                                    upperBound, vbCrLf)
                                  Console.WriteLine(output)
                               End Sub)
      Try
         t2.Wait()
      Catch ae As AggregateException
         For Each e In ae.InnerExceptions
            Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message)
         Next
      End Try
   End Sub
End Module
' The example displays output like the following:
'       Prime numbers from 1 to 400:
'
'       1,  2,  3,  5,  7,  11,  13,  17,
'       19,  23,  29,  31,  37,  41,  43,  47,
'       53,  59,  61,  67,  71,  73,  79,  83,
'       89,  97,  101,  103,  107,  109,  113,  127,
'       131,  137,  139,  149,  151,  157,  163,  167,
'       173,  179,  181,  191,  193,  197,  199,  211,
'       223,  227,  229,  233,  239,  241,  251,  257,
'       263,  269,  271,  277,  281,  283,  293,  307,
'       311,  313,  317,  331,  337,  347,  349,  353,
'       359,  367,  373,  379,  383,  389,  397,  401
' If cancellation is requested, the example displays output like the following:
'       The operation was cancelled.

Hinweise

Der zurückgegebene Task Vorgang wird erst für die Ausführung geplant, wenn der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wird, aufgrund einer ausnahmefehlernden Ausnahme oder einem vorzeitigen Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith(Action<Task<TResult>>, TaskScheduler)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

public:
 System::Threading::Tasks::Task ^ ContinueWith(Action<System::Threading::Tasks::Task<TResult> ^> ^ continuationAction, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task ContinueWith(Action<System.Threading.Tasks.Task<TResult>> continuationAction, System.Threading.Tasks.TaskScheduler scheduler);
override this.ContinueWith : Action<System.Threading.Tasks.Task<'Result>> * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task
Public Function ContinueWith (continuationAction As Action(Of Task(Of TResult)), scheduler As TaskScheduler) As Task

Parameter

continuationAction
Action<Task<TResult>>

Eine Aktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Wenn sie ausgeführt wird, wird die Stellvertretung als Argument an die abgeschlossene Aufgabe übergeben.

scheduler
TaskScheduler

The TaskScheduler to associate with the continuation task and to use for its execution.

Gibt zurück

Eine neue Fortsetzung Task.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

Das continuationAction Argument ist null.

-oder-

Das scheduler Argument ist null.

Hinweise

Der zurückgegebene Task Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, System::Object ^, TNewResult> ^ continuationFunction, System::Object ^ state, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object,TNewResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object?,TNewResult> continuationFunction, object? state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, obj, 'NewResult> * obj * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), Object, TNewResult), state As Object, cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,Object,TNewResult>

Eine Funktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei Ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsfunktion verwendet werden sollen.

cancellationToken
CancellationToken

Das CancellationToken wird der neuen Aufgabe zugewiesen.

continuationOptions
TaskContinuationOptions

Optionen für den Zeitpunkt der Planung der Fortsetzung und deren Verhalten. Dazu gehören Kriterien, z OnlyOnCanceled. B. , sowie Ausführungsoptionen, wie z ExecuteSynchronously. B. .

scheduler
TaskScheduler

The TaskScheduler to associate with the continuation task and to use for its execution.

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Das scheduler Argument ist null.

Das continuationOptions Argument gibt einen ungültigen Wert für TaskContinuationOptions.

Die bereitgestellte Datei CancellationToken wurde bereits verworfen.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Die continuationFunction, wenn ausgeführt wird, sollte ein Task<TResult>. Der Abschlussstatus dieser Aufgabe wird an die vom Task<TResult>.ContinueWith Anruf zurückgegebene Aufgabe übertragen.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die gemäß der in continuationOptions. .

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, TNewResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskContinuationOptions continuationOptions, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,TNewResult> continuationFunction, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions continuationOptions, System.Threading.Tasks.TaskScheduler scheduler);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, 'NewResult> * System.Threading.CancellationToken * System.Threading.Tasks.TaskContinuationOptions * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), TNewResult), cancellationToken As CancellationToken, continuationOptions As TaskContinuationOptions, scheduler As TaskScheduler) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,TNewResult>

Eine Funktion, die gemäß der angegebenen continuationOptionsBedingung ausgeführt werden soll.

Wenn sie ausgeführt wird, wird die Stellvertretung als Argument übergeben, das diese abgeschlossene Aufgabe erfüllt.

cancellationToken
CancellationToken

Das CancellationToken wird der neuen Aufgabe zugewiesen.

continuationOptions
TaskContinuationOptions

Optionen für den Zeitpunkt der Planung der Fortsetzung und deren Verhalten. Dazu gehören Kriterien, z OnlyOnCanceled. B. , sowie Ausführungsoptionen, wie z ExecuteSynchronously. B. .

scheduler
TaskScheduler

The TaskScheduler to associate with the continuation task and to use for its execution.

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

-oder-

Die CancellationTokenSource erstellte Datei cancellationToken wurde bereits gelöscht.

Das continuationFunction Argument ist null.

-oder-

Das scheduler Argument ist null.

Das continuationOptions Argument gibt einen ungültigen Wert für TaskContinuationOptions.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Die continuationFunction, wenn ausgeführt wird, sollte ein Task<TResult>.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskScheduler)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, System::Object ^, TNewResult> ^ continuationFunction, System::Object ^ state, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object,TNewResult> continuationFunction, object state, System.Threading.Tasks.TaskScheduler scheduler);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object?,TNewResult> continuationFunction, object? state, System.Threading.Tasks.TaskScheduler scheduler);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, obj, 'NewResult> * obj * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), Object, TNewResult), state As Object, scheduler As TaskScheduler) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,Object,TNewResult>

Eine Funktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei Ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsfunktion verwendet werden sollen.

scheduler
TaskScheduler

The TaskScheduler to associate with the continuation task and to use for its execution.

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Das scheduler Argument ist null.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, CancellationToken)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, System::Object ^, TNewResult> ^ continuationFunction, System::Object ^ state, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object,TNewResult> continuationFunction, object state, System.Threading.CancellationToken cancellationToken);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object?,TNewResult> continuationFunction, object? state, System.Threading.CancellationToken cancellationToken);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, obj, 'NewResult> * obj * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), Object, TNewResult), state As Object, cancellationToken As CancellationToken) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,Object,TNewResult>

Eine Funktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei Ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsfunktion verwendet werden sollen.

cancellationToken
CancellationToken

Das CancellationToken wird der neuen Aufgabe zugewiesen.

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Das continuationFunction Argument ist null.

Die bereitgestellte Datei CancellationToken wurde bereits verworfen.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object, TaskContinuationOptions)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, System::Object ^, TNewResult> ^ continuationFunction, System::Object ^ state, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object,TNewResult> continuationFunction, object state, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object?,TNewResult> continuationFunction, object? state, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, obj, 'NewResult> * obj * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), Object, TNewResult), state As Object, continuationOptions As TaskContinuationOptions) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,Object,TNewResult>

Eine Funktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei Ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsfunktion verwendet werden sollen.

continuationOptions
TaskContinuationOptions

Optionen für den Zeitpunkt der Planung der Fortsetzung und deren Verhalten. Dazu gehören Kriterien, z OnlyOnCanceled. B. , sowie Ausführungsoptionen, wie z ExecuteSynchronously. B. .

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Das continuationFunction Argument ist null.

Das continuationOptions Argument gibt einen ungültigen Wert für TaskContinuationOptions.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Die continuationFunction, wenn ausgeführt wird, sollte ein Task<TResult>. Der Fertigstellungsstatus dieser Aufgabe wird an die vom ContinueWith-Aufruf zurückgegebene Aufgabe übertragen.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskContinuationOptions)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die gemäß der in continuationOptions. .

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, TNewResult> ^ continuationFunction, System::Threading::Tasks::TaskContinuationOptions continuationOptions);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,TNewResult> continuationFunction, System.Threading.Tasks.TaskContinuationOptions continuationOptions);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, 'NewResult> * System.Threading.Tasks.TaskContinuationOptions -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), TNewResult), continuationOptions As TaskContinuationOptions) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,TNewResult>

Eine Funktion, die gemäß der angegebenen continuationOptionsBedingung ausgeführt werden soll.

Wenn sie ausgeführt wird, wird die Stellvertretung als Argument an die abgeschlossene Aufgabe übergeben.

continuationOptions
TaskContinuationOptions

Optionen für den Zeitpunkt der Planung der Fortsetzung und deren Verhalten. Dazu gehören Kriterien, z OnlyOnCanceled. B. , sowie Ausführungsoptionen, wie z ExecuteSynchronously. B. .

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

Das continuationFunction Argument ist null.

Das continuationOptions Argument gibt einen ungültigen Wert für TaskContinuationOptions.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Die continuationFunction, wenn ausgeführt wird, sollte ein Task<TResult>.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, CancellationToken)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, TNewResult> ^ continuationFunction, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,TNewResult> continuationFunction, System.Threading.CancellationToken cancellationToken);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, 'NewResult> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), TNewResult), cancellationToken As CancellationToken) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,TNewResult>

Eine Funktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Wenn sie ausgeführt wird, wird die Stellvertretung als Argument an die abgeschlossene Aufgabe übergeben.

cancellationToken
CancellationToken

Das CancellationToken wird der neuen Aufgabe zugewiesen.

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

-oder-

Die CancellationTokenSource erstellte Datei cancellationToken wurde bereits gelöscht.

Das continuationFunction Argument ist null.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,Object,TNewResult>, Object)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die nach Abschluss des Ziels Task<TResult> ausgeführt wird.

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, System::Object ^, TNewResult> ^ continuationFunction, System::Object ^ state);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object,TNewResult> continuationFunction, object state);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,object?,TNewResult> continuationFunction, object? state);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, obj, 'NewResult> * obj -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), Object, TNewResult), state As Object) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,Object,TNewResult>

Eine Funktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Bei Ausführung wird der Delegat die abgeschlossene Aufgabe und das vom Aufrufer bereitgestellte Statusobjekt als Argumente übergeben.

state
Object

Ein Objekt, das Daten darstellt, die von der Fortsetzungsfunktion verwendet werden sollen.

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Das continuationFunction Argument ist null.

Beispiele

Im folgenden Beispiel wird eine Kette von Fortsetzungsaufgaben erstellt. Jeder Vorgang stellt die aktuelle Uhrzeit, ein DateTime Objekt, für das Statusargument der ContinueWith(Action<Task,Object>, Object) Methode bereit. Jeder DateTime Wert stellt den Zeitpunkt dar, zu dem die Fortsetzungsaufgabe erstellt wird. Jeder Vorgang erzeugt als Ergebnis einen zweiten DateTime Wert, der die Uhrzeit darstellt, zu der der Vorgang beendet wird. Nach Abschluss aller Vorgänge zeigt das Beispiel das Datum und die Uhrzeit an, zu denen jeder Fortsetzungsvorgang beginnt und endet.

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

// Demonstrates how to associate state with task continuations.
class ContinuationState
{
   // Simluates a lengthy operation and returns the time at which
   // the operation completed.
   public static DateTime DoWork()
   {
      // Simulate work by suspending the current thread
      // for two seconds.
      Thread.Sleep(2000);

      // Return the current time.
      return DateTime.Now;
   }

   static void Main(string[] args)
   {
      // Start a root task that performs work.
      Task<DateTime> t = Task<DateTime>.Run(delegate { return DoWork(); });

      // Create a chain of continuation tasks, where each task is
      // followed by another task that performs work.
      List<Task<DateTime>> continuations = new List<Task<DateTime>>();
      for (int i = 0; i < 5; i++)
      {
         // Provide the current time as the state of the continuation.
         t = t.ContinueWith(delegate { return DoWork(); }, DateTime.Now);
         continuations.Add(t);
      }

      // Wait for the last task in the chain to complete.
      t.Wait();

      // Print the creation time of each continuation (the state object)
      // and the completion time (the result of that task) to the console.
      foreach (var continuation in continuations)
      {
         DateTime start = (DateTime)continuation.AsyncState;
         DateTime end = continuation.Result;

         Console.WriteLine("Task was created at {0} and finished at {1}.",
            start.TimeOfDay, end.TimeOfDay);
      }
   }
}

/* Sample output:
Task was created at 10:56:21.1561762 and finished at 10:56:25.1672062.
Task was created at 10:56:21.1610677 and finished at 10:56:27.1707646.
Task was created at 10:56:21.1610677 and finished at 10:56:29.1743230.
Task was created at 10:56:21.1610677 and finished at 10:56:31.1779883.
Task was created at 10:56:21.1610677 and finished at 10:56:33.1837083.
*/
Imports System.Collections.Generic
Imports System.Threading
Imports System.Threading.Tasks

' Demonstrates how to associate state with task continuations.
Public Module ContinuationState
   ' Simluates a lengthy operation and returns the time at which
   ' the operation completed.
   Public Function DoWork() As Date
      ' Simulate work by suspending the current thread 
      ' for two seconds.
      Thread.Sleep(2000)

      ' Return the current time.
      Return Date.Now
   End Function

   Public Sub Main()
      ' Start a root task that performs work.
      Dim t As Task(Of Date) = Task(Of Date).Run(Function() DoWork())

      ' Create a chain of continuation tasks, where each task is
      ' followed by another task that performs work.
      Dim continuations As New List(Of Task(Of DateTime))()
      For i As Integer = 0 To 4
         ' Provide the current time as the state of the continuation.
         t = t.ContinueWith(Function(antecedent, state) DoWork(), DateTime.Now)
         continuations.Add(t)
      Next

      ' Wait for the last task in the chain to complete.
      t.Wait()

      ' Display the creation time of each continuation (the state object)
      ' and the completion time (the result of that task) to the console.
      For Each continuation In continuations
         Dim start As DateTime = CDate(continuation.AsyncState)
         Dim [end] As DateTime = continuation.Result

         Console.WriteLine("Task was created at {0} and finished at {1}.",
            start.TimeOfDay, [end].TimeOfDay)
      Next
   End Sub
End Module
' The example displays output like the following:
'       Task was created at 10:56:21.1561762 and finished at 10:56:25.1672062.
'       Task was created at 10:56:21.1610677 and finished at 10:56:27.1707646.
'       Task was created at 10:56:21.1610677 and finished at 10:56:29.1743230.
'       Task was created at 10:56:21.1610677 and finished at 10:56:31.1779883.
'       Task was created at 10:56:21.1610677 and finished at 10:56:33.1837083.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, TNewResult> ^ continuationFunction);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,TNewResult> continuationFunction);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, 'NewResult> -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), TNewResult)) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,TNewResult>

Eine Funktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Wenn sie ausgeführt wird, wird die Stellvertretung als Argument an die abgeschlossene Aufgabe übergeben.

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

Das continuationFunction Argument ist null.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für:

ContinueWith<TNewResult>(Func<Task<TResult>,TNewResult>, TaskScheduler)

Quelle:
Future.cs
Quelle:
Task_T.cs
Quelle:
Future.cs
Quelle:
Future.cs
Quelle:
Future.cs

Erstellt eine Fortsetzung, die asynchron ausgeführt wird, wenn das Ziel Task<TResult> abgeschlossen ist.

public:
generic <typename TNewResult>
 System::Threading::Tasks::Task<TNewResult> ^ ContinueWith(Func<System::Threading::Tasks::Task<TResult> ^, TNewResult> ^ continuationFunction, System::Threading::Tasks::TaskScheduler ^ scheduler);
public System.Threading.Tasks.Task<TNewResult> ContinueWith<TNewResult>(Func<System.Threading.Tasks.Task<TResult>,TNewResult> continuationFunction, System.Threading.Tasks.TaskScheduler scheduler);
override this.ContinueWith : Func<System.Threading.Tasks.Task<'Result>, 'NewResult> * System.Threading.Tasks.TaskScheduler -> System.Threading.Tasks.Task<'NewResult>
Public Function ContinueWith(Of TNewResult) (continuationFunction As Func(Of Task(Of TResult), TNewResult), scheduler As TaskScheduler) As Task(Of TNewResult)

Typparameter

TNewResult

Der Typ des Ergebnisses, das von der Fortsetzung erzeugt wird.

Parameter

continuationFunction
Func<Task<TResult>,TNewResult>

Eine Funktion, die ausgeführt werden soll, wenn die Task<TResult> Ausführung abgeschlossen ist. Wenn sie ausgeführt wird, wird die Stellvertretung als Argument an die abgeschlossene Aufgabe übergeben.

scheduler
TaskScheduler

The TaskScheduler to associate with the continuation task and to use for its execution.

Gibt zurück

Task<TNewResult>

Eine neue Fortsetzung Task<TResult>.

Ausnahmen

Dies Task<TResult> wurde gelöscht.

Das continuationFunction Argument ist null.

-oder-

Das scheduler Argument ist null.

Hinweise

Der zurückgegebene Task<TResult> Vorgang wird erst für die Ausführung geplant, nachdem der aktuelle Vorgang abgeschlossen wurde, ob er aufgrund einer erfolgreichen Ausführung abgeschlossen wurde, aufgrund einer ausnahmefehlernden Ausnahme oder vorzeitiges Beenden aufgrund eines Abbruchs.

Weitere Informationen

Gilt für: