TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions TaskContinuationOptions Enum

Definition

Gibt das Verhalten für eine Aufgabe an, die mit der ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)-Methode oder ContinueWith(Action<Task<TResult>>, TaskContinuationOptions)-Methode erstellt wird.Specifies the behavior for a task that is created by using the ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) or ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) method.

Diese Enumeration weist ein FlagsAttribute-Attribut auf, die eine bitweise Kombination der Memberwerte zulässt.

public enum class TaskContinuationOptions
[System.Flags]
[System.Serializable]
public enum TaskContinuationOptions
type TaskContinuationOptions = 
Public Enum TaskContinuationOptions
Vererbung
TaskContinuationOptionsTaskContinuationOptionsTaskContinuationOptionsTaskContinuationOptions
Attribute

Felder

AttachedToParent AttachedToParent AttachedToParent AttachedToParent 4

Gibt an, dass die Fortsetzung, sofern es sich um eine untergeordnete Aufgabe handelt, in der Aufgabenhierarchie mit einem übergeordneten Element verknüpft wird.Specifies that the continuation, if it is a child task, is attached to a parent in the task hierarchy. Die Fortsetzung kann nur dann eine untergeordnete Aufgabe handeln, wenn das vorangehende Element ebenfalls eine untergeordnete Aufgabe ist.The continuation can be a child task only if its antecedent is also a child task. Eine untergeordnete Aufgabe (d. h. eine von einer äußeren Aufgabe erstellte innere Aufgabe) wird standardmäßig unabhängig von der übergeordneten Aufgabe ausgeführt.By default, a child task (that is, an inner task created by an outer task) executes independently of its parent. Sie können die AttachedToParent-Option verwenden, damit die übergeordneten und untergeordneten Aufgaben synchronisiert werden.You can use the AttachedToParent option so that the parent and child tasks are synchronized.

Beachten Sie: Wenn eine übergeordnete Aufgabe mit der DenyChildAttach-Option konfiguriert ist, hat die AttachedToParent-Option in der untergeordneten Aufgabe keine Auswirkungen, und die untergeordnete Aufgabe wird als eine getrennte untergeordnete Aufgabe ausgeführt.Note that if a parent task is configured with the DenyChildAttach option, the AttachedToParent option in the child task has no effect, and the child task will execute as a detached child task.

Weitere Informationen finden Sie unter Angefügte und getrennte untergeordnete Aufgaben.For more information, see Attached and Detached Child Tasks.

DenyChildAttach DenyChildAttach DenyChildAttach DenyChildAttach 8

Gibt an, dass jede untergeordnete Aufgabe (d.h. jede geschachtelte innere Aufgabe, die von dieser Fortsetzung erstellt wurde), die mit der AttachedToParent-Option erstellt wurde und deren Ausführung als angefügte untergeordnete Aufgabe versucht wird, nicht an die übergeordnete Aufgabe angefügt werden kann und stattdessen als eine getrennte untergeordnete Aufgabe ausgeführt wird.Specifies that any child task (that is, any nested inner task created by this continuation) that is created with the AttachedToParent option and attempts to execute as an attached child task will not be able to attach to the parent task and will execute instead as a detached child task. Weitere Informationen finden Sie unter Attached and Detached Child Tasks.For more information, see Attached and Detached Child Tasks.

ExecuteSynchronously ExecuteSynchronously ExecuteSynchronously ExecuteSynchronously 524288

Gibt an, dass die Fortsetzungsaufgabe synchron ausgeführt werden soll.Specifies that the continuation task should be executed synchronously. Wenn diese Option angegeben wird, wird die Fortsetzung in dem Thread ausgeführt, der den Übergang der vorangehenden Aufgabe in ihren Endzustand verursacht hat.With this option specified, the continuation runs on the same thread that causes the antecedent task to transition into its final state. Falls die vorangehende Aufgabe bereits abgeschlossen wurde, wird die Fortsetzung in dem Thread ausgeführt, der die Fortsetzung erstellt.If the antecedent is already complete when the continuation is created, the continuation will run on the thread that creates the continuation. Wird die CancellationTokenSource des Vorgängers in einem finally-Block (Finally in Visual Basic) verworfen, wird eine Fortsetzung mit dieser Option in diesem finally-Block ausgeführt.If the antecedent's CancellationTokenSource is disposed in a finally block (Finally in Visual Basic), a continuation with this option will run in that finally block. Nur sehr kurze Fortsetzungen sollten synchron ausgeführt werden.Only very short-running continuations should be executed synchronously.

Da der Vorgang synchron ausgeführt wird, ist das Aufrufen einer Methode wie Wait() nicht erforderlich, um sicherzustellen, dass der aufrufende Thread wartet, bis die Aufgabe abgeschlossen ist.Because the task executes synchronously, there is no need to call a method such as Wait() to ensure that the calling thread waits for the task to complete.

HideScheduler HideScheduler HideScheduler HideScheduler 16

Gibt an, dass Aufgaben, die von der Fortsetzung durch den Aufruf von Methoden wie Run(Action) oder ContinueWith(Action<Task>) erstellt wurden, sich auf den Standardplaner (Default) als aktuellen Planer beziehen, statt auf den Planer, auf dem diese Fortsetzung ausgeführt wird.Specifies that tasks created by the continuation by calling methods such as Run(Action) or ContinueWith(Action<Task>) see the default scheduler (Default) rather than the scheduler on which this continuation is running as the current scheduler.

LazyCancellation LazyCancellation LazyCancellation LazyCancellation 32

Im Fall des Fortsetzungsabbruchs wird die Beendigung der Fortsetzung verhindert, bis der Vorgänger abgeschlossen wurde.In the case of continuation cancellation, prevents completion of the continuation until the antecedent has completed.

LongRunning LongRunning LongRunning LongRunning 2

Gibt an, dass die Fortsetzung ein undifferenzierter Vorgang mit langer Laufzeit ist.Specifies that a continuation will be a long-running, course-grained operation. Enthält einen Hinweis für den TaskScheduler , dass möglicherweise zu viele Abonnements gewährt werden.It provides a hint to the TaskScheduler that oversubscription may be warranted.

None None None None 0

Gibt, wenn keine Fortsetzungsoptionen angegeben sind, an, dass beim Ausführen einer Fortsetzen das Standardverhalten verwendet werden soll.When no continuation options are specified, specifies that default behavior should be used when executing a continuation. Die Fortsetzung wird beim Abschluss der vorhergehenden Aufgabe asynchron ausgeführt, unabhängig vom endgültigen Wert der Eigenschaft Status.The continuation runs asynchronously when the antecedent task completes, regardless of the antecedent's final Status property value. Handelt es sich bei der Fortsetzung um eine untergeordnete Aufgabe, wird diese als getrennte geschachtelte Aufgabe erstellt.It the continuation is a child task, it is created as a detached nested task.

NotOnCanceled NotOnCanceled NotOnCanceled NotOnCanceled 262144

Gibt an, dass die Fortsetzungsaufgabe nicht geplant werden soll, wenn die vorangehende Aufgabe abgebrochen wurde.Specifies that the continuation task should not be scheduled if its antecedent was canceled. Ein vorhergehende Aufgabe wird abgebrochen, wenn ihre Eigenschaft " Status " beim Abschluss den Wert " Canceled" aufweist.An antecedent is canceled if its Status property upon completion is Canceled. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.This option is not valid for multi-task continuations.

NotOnFaulted NotOnFaulted NotOnFaulted NotOnFaulted 131072

Gibt an, dass die Fortsetzungsaufgabe nicht geplant werden soll, wenn der Vorgänger einen Ausnahmefehler ausgelöst hat.Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled exception. Eine vorhergehende Aufgabe löst einen Ausnahmefehler aus, wenn ihre Eigenschaft "Status" beim Abschluss den Wert "Faulted" aufweist.An antecedent throws an unhandled exception if its Status property upon completion is Faulted. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.This option is not valid for multi-task continuations.

NotOnRanToCompletion NotOnRanToCompletion NotOnRanToCompletion NotOnRanToCompletion 65536

Gibt an, dass die Fortsetzungsaufgabe nicht geplant werden soll, wenn der Vorgänger bis zum Abschluss ausgeführt wurde.Specifies that the continuation task should not be scheduled if its antecedent ran to completion. Eine vorhergehende Aufgabe wird bis zum Abschluss ausgeführt, wenn ihre Eigenschaft " Status " beim Abschluss den Wert " RanToCompletion" aufweist.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.This option is not valid for multi-task continuations.

OnlyOnCanceled OnlyOnCanceled OnlyOnCanceled OnlyOnCanceled 196608

Gibt an, dass die Fortsetzung nur geplant werden soll, wenn die vorangehende Aufgabe abgebrochen wurde.Specifies that the continuation should be scheduled only if its antecedent was canceled. Ein vorhergehende Aufgabe wird abgebrochen, wenn ihre Eigenschaft "Status" beim Abschluss den Wert "Canceled" aufweist.An antecedent is canceled if its Status property upon completion is Canceled. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.This option is not valid for multi-task continuations.

OnlyOnFaulted OnlyOnFaulted OnlyOnFaulted OnlyOnFaulted 327680

Gibt an, dass die Fortsetzungsaufgabe nur geplant werden soll, wenn der Vorgänger einen Ausnahmefehler ausgelöst hat.Specifies that the continuation task should be scheduled only if its antecedent threw an unhandled exception. Eine vorhergehende Aufgabe löst einen Ausnahmefehler aus, wenn ihre Eigenschaft " Status " beim Abschluss den Wert " Faulted" aufweist.An antecedent throws an unhandled exception if its Status property upon completion is Faulted.

Die Option „OnlyOnFaulted“ stellt sicher, dass die Exception-Eigenschaft im Vorgänger nicht null ist.The OnlyOnFaulted option guarantees that the Exception property in the antecedent is not null. Sie können diese Eigenschaft verwenden, um die Ausnahme zu erfassen und anzuzeigen, welche Ausnahme das Fehlschlagen der Aufgabe verursacht hat.You can use that property to catch the exception and see which exception caused the task to fault. Wenn Sie nicht auf die Exception-Eigenschaft zugreifen, bleibt die Ausnahme unbehandelt.If you do not access the Exception property, the exception is unhandled. Darüber hinaus wird eine neue Ausnahme ausgelöst, wenn Sie auf die Result-Eigenschaft einer Aufgabe zugreifen, die abgebrochen wurde oder fehlgeschlagen ist.Also, if you attempt to access the Result property of a task that has been canceled or has faulted, a new exception is thrown.

Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.This option is not valid for multi-task continuations.

OnlyOnRanToCompletion OnlyOnRanToCompletion OnlyOnRanToCompletion OnlyOnRanToCompletion 393216

Gibt an, dass die Fortsetzung nur geplant werden soll, wenn die vorangehende Aufgabe bis zum Abschluss ausgeführt wurde.Specifies that the continuation should be scheduled only if its antecedent ran to completion. Eine vorhergehende Aufgabe wird bis zum Abschluss ausgeführt, wenn ihre Eigenschaft „Status“ beim Abschluss den Wert „RanToCompletion“ aufweist.An antecedent runs to completion if its Status property upon completion is RanToCompletion. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.This option is not valid for multi-task continuations.

PreferFairness PreferFairness PreferFairness PreferFairness 1

Ein Hinweis für ein TaskScheduler, Aufgaben in der Reihenfolge ihrer ursprünglichen Planung zu planen, sodass zu einem früheren Zeitpunkt geplante Aufgaben tendenziell früher, zu einem späteren Zeitpunkt geplante Aufgaben tendenziell später ausgeführt werden.A hint to a TaskScheduler to schedule task in the order in which they were scheduled, so that tasks scheduled sooner are more likely to run sooner, and tasks scheduled later are more likely to run later.

RunContinuationsAsynchronously RunContinuationsAsynchronously RunContinuationsAsynchronously RunContinuationsAsynchronously 64

Gibt an, dass die Fortsetzungsaufgabe asynchron ausgeführt werden soll.Specifies that the continuation task should be run asynchronously. Diese Option hat Vorrang vor ExecuteSynchronously.This option has precedence over ExecuteSynchronously.

Gilt für: