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
屬性

欄位

名稱 Description
None 0

當未指定續接選項時,指定執行續接時應使用預設行為。 當前件任務完成時,延續會非同步執行,無論前件的最終 Status 屬性值為何。 如果續接是子任務,則會建立為獨立巢狀任務。

PreferFairness 1

提示 a TaskScheduler :按照任務排程順序排程,這樣排程較早的任務較可能執行較早,排程較晚的任務也較可能執行較晚。

LongRunning 2

規定續集將是一個長期且有路徑粒度的操作。 這暗示 TaskScheduler 了超額訂閱可能是合理的。

AttachedToParent 4

指定若續接為子任務,則會附加到任務階層中的父任務。 續接只有在其前件同時也是子任務時,才能成為子任務。 預設情況下,子任務(即由外部任務建立的內部任務)會獨立於父任務執行。 你可以使用這個 AttachedToParent 選項,讓父任務和子任務同步。

請注意,若父任務設定有該 DenyChildAttach 選項, AttachedToParent 子任務中的該選項不影響,子任務將以分離子任務形式執行。

如需詳細資訊,請參閱 附加和分離的子工作

DenyChildAttach 8

規定任何以 AttachedToParent 選項創建並嘗試作為附加子任務執行的子任務(即由此延續建立的任何巢狀內部任務)將無法附加至父任務,而是以分離子任務執行。 如需詳細資訊,請參閱 附加和分離的子工作

HideScheduler 16

指定由延續所產生的任務,透過呼叫方法 Run(Action) 如 或 ContinueWith(Action<Task>) 查看預設排程器(Default),而非當前排程器,而非該續接執行的排程器所建立。

LazyCancellation 32

在續件取消的情況下,阻止續曲完成,直到前件完成。

RunContinuationsAsynchronously 64

指定續接任務應非同步執行。 此選項優先於 ExecuteSynchronously

NotOnRanToCompletion 65536

規定若續接任務已完成,則不應排程。 若前件在完備時的性質為 Status,則 RanToCompletion 至 完備。 此選項不適用於多工續寫。

NotOnFaulted 131072

規定如果續接任務拋出未處理的例外,則不應排程該續接任務。 如果 Status 一個前件在完備時的屬性為 Faulted,則拋出未處理異常。 此選項不適用於多工續寫。

OnlyOnCanceled 196608

規定只有在其前置被取消時,續集才應排程。 若完 Status 備時前件性質為 Canceled,則該前件被取消。 此選項不適用於多工續寫。

NotOnCanceled 262144

規定若前件被取消,續接任務不應被排程。 若完 Status 備時前件性質為 Canceled,則該前件被取消。 此選項不適用於多工續寫。

OnlyOnFaulted 327680

指定只有當續行任務拋出未處理的例外時才應排程。 如果 Status 一個前件在完備時的屬性為 Faulted,則拋出未處理異常。

選擇 OnlyOnFaulted 權保證 Exception 前件中的性質不是 null。 你可以利用這個特性來捕捉異常,並查看是哪個例外導致任務錯誤。 如果您未進入該 Exception 物業,該例外將無法處理。 此外,如果你嘗試存取 Result 已取消或錯誤的任務屬性,會拋出新的例外。

此選項不適用於多工續寫。

OnlyOnRanToCompletion 393216

規定只有當前一件已經完成時,續集才應排程。 若前件在完備時的性質為 Status,則 RanToCompletion 至 完備。 此選項不適用於多工續寫。

ExecuteSynchronously 524288

指定續接任務應同步執行。 指定此選項後,續接執行會在導致前件任務轉換至最終狀態的同一執行緒上執行。 如果在建立續接時前件已經完成,續接會在產生續接的執行緒上執行。 若前件的 CancellationTokenSource 被置於 finally 區塊(Visual Basic 中為 Finally),則該 finally 區塊中會執行此選項的延續。 只有非常短的續接應同步執行。

由於任務是同步執行的,因此不需要呼叫某個方法 Wait() 來確保呼叫執行緒等待任務完成。

適用於