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
- Наследование
- Атрибуты
Поля
| Имя | Значение | Описание |
|---|---|---|
| None | 0 | Если параметры продолжения не указаны, указывает, что при выполнении продолжения следует использовать поведение по умолчанию. Продолжение выполняется асинхронно, когда задача antecedent завершается независимо от конечного Status значения свойства antecedent. Если продолжение является дочерней задачей, она создается как отсоединяемая вложенная задача. |
| 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 | Указывает, что задача продолжения не должна быть запланирована, если ее предшествующая задача выполнена до завершения. Объект antecedent выполняется до завершения, если его Status свойство после завершения RanToCompletion. Этот параметр недопустим для продолжения нескольких задач. |
| NotOnFaulted | 131072 | Указывает, что задача продолжения не должна быть запланирована, если ее предшествующая ошибка вызвала необработанное исключение. Объект antecedent создает необработанное исключение, если его Status свойство после завершения Faulted. Этот параметр недопустим для продолжения нескольких задач. |
| OnlyOnCanceled | 196608 | Указывает, что продолжение должно быть запланировано только в том случае, если он был отменен. Объект antecedent отменяется, если его Status свойство после завершения Canceled. Этот параметр недопустим для продолжения нескольких задач. |
| NotOnCanceled | 262144 | Указывает, что задача продолжения не должна быть запланирована, если она была отменена. Объект antecedent отменяется, если его Status свойство после завершения Canceled. Этот параметр недопустим для продолжения нескольких задач. |
| OnlyOnFaulted | 327680 | Указывает, что задача продолжения должна быть запланирована только в том случае, если его предшествующая задача вызвала необработанное исключение. Объект antecedent создает необработанное исключение, если его Status свойство после завершения Faulted. Параметр OnlyOnFaulted гарантирует, что Exception свойство в отступе не Этот параметр недопустим для продолжения нескольких задач. |
| OnlyOnRanToCompletion | 393216 | Указывает, что продолжение должно быть запланировано только в том случае, если его отступ выполняется до завершения. Объект antecedent выполняется до завершения, если его Status свойство после завершения RanToCompletion. Этот параметр недопустим для продолжения нескольких задач. |
| ExecuteSynchronously | 524288 | Указывает, что задача продолжения должна выполняться синхронно. При указании этого параметра продолжение выполняется в том же потоке, который приводит к переходу задачи отступа в конечное состояние. Если объект antecedent уже завершен при создании продолжения, продолжение будет выполняться в потоке, который создает продолжение. Если объект antecedent CancellationTokenSource удаляется в блоке Так как задача выполняется синхронно, вызов такого метода не требуется, чтобы Wait() вызывающий поток ждал завершения задачи. |