Бөлісу құралы:


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
Атрибуты

Поля

AttachedToParent 4

Указывает, что если продолжение является дочерней задачей, оно присоединяется к родительской задаче в иерархии задач. Продолжение может быть дочерней задачей, только если ее предшествующая задача тоже была дочерней. По умолчанию дочерняя задача (это внутренняя задача, создаваемая внешней задачей) выполняется независимо от своей родительской задачи. Вы можете воспользоваться параметром AttachedToParent, чтобы синхронизировать родительские и дочерние задачи.

Обратите внимание, что если родительская задача настроена с параметром DenyChildAttach, параметр AttachedToParent в дочерней задаче не действует, и эта дочерняя задача будет выполняться как отсоединенная.

Дополнительные сведения см. в разделе Присоединенные и отсоединенные дочерние задачи.

DenyChildAttach 8

Указывает, что любая дочерняя задача (т. е. любая вложенная задача, созданная продолжением), которая создается с параметром AttachedToParent и для которой производится попытка выполнения в качестве подключенной дочерней задачи, не сможет подключиться к родительской задаче и будет выполняться как отсоединенная дочерняя задача. Дополнительные сведения см. в разделе Присоединенные и отсоединенные дочерние задачи.

ExecuteSynchronously 524288

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

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

Данный параметр не является действительным для продолжений нескольких задач.

OnlyOnRanToCompletion 393216

Указывает, что продолжение должно планироваться, только если предшествующая задача завершилась. Предшествующая задача выполняется полностью, если после завершения ее свойство Status имеет значение RanToCompletion. Данный параметр не является действительным для продолжений нескольких задач.

PreferFairness 1

Указание для планирования задач TaskScheduler в том порядке, в котором они были запланированы, т. е. задачи, запланированные ранее, будут выполняться ранее, а более поздние — позже.

RunContinuationsAsynchronously 64

Указывает, что задача продолжения должна выполняться асинхронно. Этот приоритет имеет приоритет над ExecuteSynchronously.

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