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

Если параметры продолжения не указаны, указывает, что при выполнении продолжения следует использовать поведение по умолчанию. Продолжение выполняется асинхронно, когда задача 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 свойство в отступе не nullявляется. Это свойство можно использовать для перехвата исключения и просмотра того, какое исключение вызвало сбой задачи. Если вы не обращаетесь к свойству Exception , исключение необработано. Кроме того, при попытке получить доступ к Result свойству задачи, отмененной или неисправной, создается новое исключение.

Этот параметр недопустим для продолжения нескольких задач.

OnlyOnRanToCompletion 393216

Указывает, что продолжение должно быть запланировано только в том случае, если его отступ выполняется до завершения. Объект antecedent выполняется до завершения, если его Status свойство после завершения RanToCompletion. Этот параметр недопустим для продолжения нескольких задач.

ExecuteSynchronously 524288

Указывает, что задача продолжения должна выполняться синхронно. При указании этого параметра продолжение выполняется в том же потоке, который приводит к переходу задачи отступа в конечное состояние. Если объект antecedent уже завершен при создании продолжения, продолжение будет выполняться в потоке, который создает продолжение. Если объект antecedent CancellationTokenSource удаляется в блоке finally (Finally в Visual Basic), продолжение с этим параметром будет выполняться в этом блоке finally. Только очень короткие продолжения должны выполняться синхронно.

Так как задача выполняется синхронно, вызов такого метода не требуется, чтобы Wait() вызывающий поток ждал завершения задачи.

Применяется к