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
- Наследование
- Атрибуты
Поля
AttachedToParent | 4 | Указывает, что если продолжение является дочерней задачей, оно присоединяется к родительской задаче в иерархии задач. Продолжение может быть дочерней задачей, только если ее предшествующая задача тоже была дочерней. По умолчанию дочерняя задача (это внутренняя задача, создаваемая внешней задачей) выполняется независимо от своей родительской задачи. Вы можете воспользоваться параметром AttachedToParent, чтобы синхронизировать родительские и дочерние задачи. Обратите внимание, что если родительская задача настроена с параметром DenyChildAttach, параметр AttachedToParent в дочерней задаче не действует, и эта дочерняя задача будет выполняться как отсоединенная. Дополнительные сведения см. в разделе Присоединенные и отсоединенные дочерние задачи. |
DenyChildAttach | 8 | Указывает, что любая дочерняя задача (т. е. любая вложенная задача, созданная продолжением), которая создается с параметром AttachedToParent и для которой производится попытка выполнения в качестве подключенной дочерней задачи, не сможет подключиться к родительской задаче и будет выполняться как отсоединенная дочерняя задача. Дополнительные сведения см. в разделе Присоединенные и отсоединенные дочерние задачи. |
ExecuteSynchronously | 524288 | Указывает, что задача продолжения должна выполняться синхронно. Если этот параметр указан, продолжение выполняется в том же потоке, который приводит к переходу предшествующей задачи в конечное состояние. Если при создании продолжения предшествующая задача уже завершена, продолжение будет выполняться в потоке, создавшем его. Если объект CancellationTokenSource предшествующей задачи в блоке Так как задача выполняется синхронно, нет необходимости вызывать, например, метод 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 в предшествующей задаче не равно Данный параметр не является действительным для продолжений нескольких задач. |
OnlyOnRanToCompletion | 393216 | Указывает, что продолжение должно планироваться, только если предшествующая задача завершилась. Предшествующая задача выполняется полностью, если после завершения ее свойство Status имеет значение RanToCompletion. Данный параметр не является действительным для продолжений нескольких задач. |
PreferFairness | 1 | Указание для планирования задач TaskScheduler в том порядке, в котором они были запланированы, т. е. задачи, запланированные ранее, будут выполняться ранее, а более поздние — позже. |
RunContinuationsAsynchronously | 64 | Указывает, что задача продолжения должна выполняться асинхронно. Этот приоритет имеет приоритет над ExecuteSynchronously. |