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

字段

名称 说明
None 0

如果未指定延续选项,则指定在执行延续时应使用默认行为。 在前面的任务完成时,延续以异步方式运行,而不考虑前者的最终 Status 属性值。 如果延续是子任务,则会将其创建为分离的嵌套任务。

PreferFairness 1

提示按 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

指定如果延续任务已运行到完成,则不应计划延续任务。 如果前一个前项在完成时其属性为RanToCompletion完成,则运行Status为完成。 此选项对多任务延续无效。

NotOnFaulted 131072

指定如果延续任务的先行引发未经处理的异常,则不应计划延续任务。 如果前面的异常在完成Faulted时引发Status未经处理的异常。 此选项对多任务延续无效。

OnlyOnCanceled 196608

指定仅当延续的先行已取消时,才应计划延续。 如果其属性在完成Canceled时取消其Status前项。 此选项对多任务延续无效。

NotOnCanceled 262144

指定如果已取消延续任务,则不应计划延续任务。 如果其属性在完成Canceled时取消其Status前项。 此选项对多任务延续无效。

OnlyOnFaulted 327680

指定仅当延续任务引发未经处理的异常时,才应计划延续任务。 如果前面的异常在完成Faulted时引发Status未经处理的异常。

OnlyOnFaulted 选项保证 Exception 前面的属性不是 null。 可以使用该属性捕获异常,并查看导致任务出错的异常。 如果未访问该 Exception 属性,则会取消处理异常。 此外,如果尝试访问 Result 已取消或出错的任务的属性,则会引发新的异常。

此选项对多任务延续无效。

OnlyOnRanToCompletion 393216

指定仅当延续的先行运行到完成时,才应计划延续。 如果前一个前项在完成时其属性为RanToCompletion完成,则运行Status为完成。 此选项对多任务延续无效。

ExecuteSynchronously 524288

指定应同步执行延续任务。 指定此选项后,延续将在导致前一个任务转换为其最终状态的同一线程上运行。 如果在创建延续时已完成前面的操作,则延续将在创建延续的线程上运行。 如果前面的CancellationTokenSourcefinally 块中释放(Visual Basic 中的 Finally),则此选项的延续将在该 finally 块中运行。 只应同步执行非常短的延续。

由于任务同步执行,因此无需调用方法,例如 Wait() 确保调用线程等待任务完成。

适用于