TaskContinuationOptions 列舉

定義

指定使用 ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)ContinueWith(Action<Task<TResult>>, TaskContinuationOptions) 方法建立之工作的行為。

此列舉支援其成員值的位元組合。

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
繼承
TaskContinuationOptions
屬性

欄位

AttachedToParent 4

指定將接續 (如果是子工作) 附加至工作階層中的父代。 只有在接續的前項也是子工作時,該接續才可以是子工作。 根據預設,子工作 (即外部工作所建立的內部工作) 會在其父代之外單獨執行。 您可以使用 AttachedToParent 選項,使父工作與子工作同步化。

請注意,若父工作是以 DenyChildAttach 選項進行設定,則子工作中的 AttachedToParent 選項無效,且會以中斷連結的子工作方式執行子工作。

如需詳細資訊,請參閱附加與中斷連結的子工作

DenyChildAttach 8

指定以 AttachedToParent 選項建立的任何子工作 (亦即這個接續所建立的任何巢狀內部工作),以及以附加子工作方式執行的嘗試,都將無法附加至父工作,且會改為以中斷連結的子工作方式執行。 如需詳細資訊,請參閱附加與中斷連結的子工作

ExecuteSynchronously 524288

指定應該要同步執行接續工作。 指定這個選項時,接續會在造成前項工作轉換為最終狀態的同一個執行緒上執行。 如果建立接續時前項已完成,則接續會在建立接續的執行緒上執行。 如果前項的 CancellationTokenSourcefinally 區塊 (在 Visual Basic 中為 Finally) 中遭處置,則會在該 finally 區塊中執行具有這個選項的接續。 只有執行時間很短的接續工作才適合以同步方式執行。

因為工作以同步方式執行,所以不需要呼叫方法 (如 Wait()),以確保呼叫執行緒等待工作完成。

HideScheduler 16

指定接續透過呼叫 Run(Action)ContinueWith(Action<Task>) 等方法所建立的工作,會將預設排程器 (Default) 視為目前的排程器,而不是這個接續執行依據的排程器。

LazyCancellation 32

在接續取消的情況下,防止接續在前項完成之前完成。

LongRunning 2

指定接續會是長時間執行的繁複作業。 這會提示 TaskScheduler 可能會發生過度訂閱的狀況。

None 0

如果未指定任何接續選項,則指定在執行接續時,應該使用預設行為。 當前項工作完成時,接續會以非同步方式執行,而不論前項的最終 Status 屬性值為何。 如果接續是子工作,則會建立為中斷連結的巢狀工作。

NotOnCanceled 262144

指定當前項工作取消時,不應該排定接續工作。 如果前項在完成時的 Status 屬性為 Canceled,則取消前項。 這個選項對多工接續而言無效。

NotOnFaulted 131072

指定當前項擲回未處理的例外狀況時,不應該排程接續工作。 如果前項在完成時的 Status 屬性為 Faulted,則擲回未處理的例外狀況。 這個選項對多工接續而言無效。

NotOnRanToCompletion 65536

指定當前項執行完成時,不應該排程接續工作。 如果前項在完成時的 Status 屬性為 RanToCompletion,則執行到完成。 這個選項對多工接續而言無效。

OnlyOnCanceled 196608

指定只有在取消接續的前項時,才應該排定接續。 如果前項在完成時的 Status 屬性為 Canceled,則取消前項。 這個選項對多工接續而言無效。

OnlyOnFaulted 327680

指定只有在前項擲回未處理的例外狀況時,才應排程接續工作。 如果前項在完成時的 Status 屬性為 Faulted,則擲回未處理的例外狀況。

OnlyOnFaulted 選項可確保前項的 Exception 屬性不是 null。 您可以使用該屬性來攔截例外狀況,並查看是哪一種例外狀況導致工作錯誤。 如果您未存取 Exception 屬性,則會形成未處理的例外狀況。 此外,如果您嘗試存取已取消或已發生錯誤之工作的 Result 屬性,將會擲回新的例外狀況。

這個選項對多工接續而言無效。

OnlyOnRanToCompletion 393216

指定只有在接續的前項徹底執行後,才應該排定接續。 如果前項在完成時的 Status 屬性為 RanToCompletion,則執行到完成。 這個選項對多工接續而言無效。

PreferFairness 1

提示 TaskScheduler 依序排程工作,讓先排程的工作早執行的機率較高,後排程的工作晚執行的機率較高。

RunContinuationsAsynchronously 64

指定應該要非同步執行接續工作。 這個選項優先於 ExecuteSynchronously

適用於