TaskContinuationOptions Enumeration

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.

Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.

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

Felder

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. Die Fortsetzung kann nur dann eine untergeordnete Aufgabe handeln, wenn das vorangehende Element ebenfalls eine untergeordnete Aufgabe ist. 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. Sie können die AttachedToParent-Option verwenden, damit die übergeordneten und untergeordneten Aufgaben synchronisiert werden.

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.

Weitere Informationen finden Sie unter Angefügte und getrennte untergeordnete Aufgaben.

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. Weitere Informationen finden Sie unter Angefügte und getrennte untergeordnete Aufgaben.

ExecuteSynchronously 524288

Gibt an, dass die Fortsetzungsaufgabe synchron ausgeführt werden soll. Wenn diese Option angegeben wird, wird die Fortsetzung in dem Thread ausgeführt, der den Übergang der vorangehenden Aufgabe in ihren Endzustand verursacht hat. Falls die vorangehende Aufgabe bereits abgeschlossen wurde, wird die Fortsetzung in dem Thread ausgeführt, der die Fortsetzung erstellt. 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. Nur sehr kurze Fortsetzungen sollten synchron ausgeführt werden.

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.

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.

LazyCancellation 32

Im Fall des Fortsetzungsabbruchs wird die Beendigung der Fortsetzung verhindert, bis der Vorgänger abgeschlossen wurde.

LongRunning 2

Gibt an, dass die Fortsetzung ein undifferenzierter Vorgang mit langer Laufzeit ist. Enthält einen Hinweis für den TaskScheduler, dass möglicherweise zu viele Abonnements gewährt werden.

None 0

Gibt, wenn keine Fortsetzungsoptionen angegeben sind, an, dass beim Ausführen einer Fortsetzen das Standardverhalten verwendet werden soll. Die Fortsetzung wird beim Abschluss der vorhergehenden Aufgabe asynchron ausgeführt, unabhängig vom endgültigen Wert der Eigenschaft Status. Wenn die Fortsetzung eine untergeordnete Aufgabe ist, wird sie als getrennt geschachtelte Aufgabe erstellt.

NotOnCanceled 262144

Gibt an, dass die Fortsetzungsaufgabe nicht geplant werden soll, wenn die vorangehende Aufgabe abgebrochen wurde. Ein vorhergehende Aufgabe wird abgebrochen, wenn ihre Eigenschaft "Status" beim Abschluss den Wert "Canceled" aufweist. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.

NotOnFaulted 131072

Gibt an, dass die Fortsetzungsaufgabe nicht geplant werden soll, wenn der Vorgänger einen Ausnahmefehler ausgelöst hat. Eine vorhergehende Aufgabe löst einen Ausnahmefehler aus, wenn ihre Eigenschaft "Status" beim Abschluss den Wert "Faulted" aufweist. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.

NotOnRanToCompletion 65536

Gibt an, dass die Fortsetzungsaufgabe nicht geplant werden soll, wenn der Vorgänger bis zum Abschluss ausgeführt wurde. Eine vorhergehende Aufgabe wird bis zum Abschluss ausgeführt, wenn ihre Eigenschaft „Status“ beim Abschluss den Wert „RanToCompletion“ aufweist. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.

OnlyOnCanceled 196608

Gibt an, dass die Fortsetzung nur geplant werden soll, wenn die vorangehende Aufgabe abgebrochen wurde. Ein vorhergehende Aufgabe wird abgebrochen, wenn ihre Eigenschaft "Status" beim Abschluss den Wert "Canceled" aufweist. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.

OnlyOnFaulted 327680

Gibt an, dass die Fortsetzungsaufgabe nur geplant werden soll, wenn der Vorgänger einen Ausnahmefehler ausgelöst hat. Eine vorhergehende Aufgabe löst einen Ausnahmefehler aus, wenn ihre Eigenschaft "Status" beim Abschluss den Wert "Faulted" aufweist.

Die Option „OnlyOnFaulted“ stellt sicher, dass die Exception-Eigenschaft im Vorgänger nicht null ist. Sie können diese Eigenschaft verwenden, um die Ausnahme zu erfassen und anzuzeigen, welche Ausnahme das Fehlschlagen der Aufgabe verursacht hat. Wenn Sie nicht auf die Exception-Eigenschaft zugreifen, bleibt die Ausnahme unbehandelt. Darüber hinaus wird eine neue Ausnahme ausgelöst, wenn Sie auf die Result-Eigenschaft einer Aufgabe zugreifen, die abgebrochen wurde oder fehlgeschlagen ist.

Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.

OnlyOnRanToCompletion 393216

Gibt an, dass die Fortsetzung nur geplant werden soll, wenn die vorangehende Aufgabe bis zum Abschluss ausgeführt wurde. Eine vorhergehende Aufgabe wird bis zum Abschluss ausgeführt, wenn ihre Eigenschaft „Status“ beim Abschluss den Wert „RanToCompletion“ aufweist. Diese Option ist nicht gültig für die Fortsetzung mehrerer Aufgaben.

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.

RunContinuationsAsynchronously 64

Gibt an, dass die Fortsetzungsaufgabe asynchron ausgeführt werden soll. Diese Option hat Vorrang vor ExecuteSynchronously.

Gilt für