TaskContinuationOptions Enumeración

Definición

Especifica el comportamiento de una tarea que se crea mediante el método ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) o ContinueWith(Action<Task<TResult>>, TaskContinuationOptions).

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

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
Herencia
TaskContinuationOptions
Atributos

Campos

AttachedToParent 4

Especifica que la continuación, si es una tarea secundaria, se adjunta a un elemento primario en la jerarquía de tareas. La continuación puede ser una tarea secundaria solo si su antecedente también es una tarea secundaria. De forma predeterminada, una tarea secundaria (es decir, una tarea interna creada por una tarea externa) se ejecuta de forma independiente de la tarea principal. La opción AttachedToParent permite sincronizar las tareas primarias y secundarias.

Tenga en cuenta que, si una tarea primaria se configura con la opción DenyChildAttach, la opción AttachedToParent no tiene ningún efecto en la tarea secundaria y ésta se ejecutará como una tarea secundaria desasociada.

Para más información, consulte Tareas secundarias asociadas y desasociadas.

DenyChildAttach 8

Especifica que cualquier tarea secundaria (es decir, toda tarea interna anidada creada por su continuación) que se cree con la opción AttachedToParent e intente ejecutarse como una tarea secundaria asociada no pueda adjuntar la tarea primaria y se ejecute como una tarea secundaria desasociada. Para más información, consulte Tareas secundarias asociadas y desasociadas.

ExecuteSynchronously 524288

Especifica que la tarea de continuación debe ejecutarse sincrónicamente. Si se especifica esta opción, la continuación se ejecuta en el mismo subproceso que causa la transición de la tarea anterior a su estado final. Si la tarea anterior ya se completó al crear la continuación, esta se ejecutará en el subproceso que crea la continuación. Si se desecha CancellationTokenSource del antecedente en un bloque finally (Finally en Visual Basic), se ejecutará una continuación con esta opción en ese bloque finally. Solo deben ejecutarse sincrónicamente las continuaciones de duración muy breve.

Dado que la tarea se ejecuta de forma sincrónica, no es necesario llamar a un método como Wait() para asegurarse de que el subproceso llamado espera a que se complete la tarea.

HideScheduler 16

Especifica que las tareas creadas por la continuación llamando a métodos como Run(Action) o ContinueWith(Action<Task>) vean el programador predeterminado (Default) en lugar del programador en el que esta continuación se ejecuta como el programador actual.

LazyCancellation 32

En el caso de cancelación de continuación, evita la finalización de la continuación hasta que el antecedente se haya completado.

LongRunning 2

Especifica que una continuación será una operación general de larga duración. Proporciona una sugerencia al TaskScheduler de que se puede garantizar la sobresuscripción.

None 0

Cuando no se indica ninguna opción de continuación, especifica que se debe usar el comportamiento predeterminado cuando se ejecuta una continuación. La continuación se ejecuta de forma asincrónica cuando se complete la tarea anterior, independientemente valor de propiedad de Status final del antecedente. Si la continuación es una tarea secundaria, se crea como una tarea anidada desasociada.

NotOnCanceled 262144

Especifica que no se programe la tarea de continuación si se cancela la tarea anterior. Un antecedente se cancela si su propiedad Status al finalizar es Canceled. Esta opción no es válida para las continuaciones de varias tareas.

NotOnFaulted 131072

Especifica que no se debe programar la tarea de continuación si su antecedente produjo una excepción no controlada. Un antecedente produce una excepción no controlada si su propiedad Status al finalizar es Faulted. Esta opción no es válida para las continuaciones de varias tareas.

NotOnRanToCompletion 65536

Especifica que no se debe programar la tarea de continuación si su antecedente se ejecuta completamente. Un antecedente se ejecuta por completo si su propiedad Status al finalizar es RanToCompletion. Esta opción no es válida para las continuaciones de varias tareas.

OnlyOnCanceled 196608

Especifica que la continuación debe programarse únicamente si se cancela su antecedente. Un antecedente se cancela si su propiedad Status al finalizar es Canceled. Esta opción no es válida para las continuaciones de varias tareas.

OnlyOnFaulted 327680

Especifica que la tarea de continuación solo se debe programar si su antecedente produjo una excepción no controlada. Un antecedente produce una excepción no controlada si su propiedad Status al finalizar es Faulted.

La opción OnlyOnFaulted garantiza que la propiedad Exception del antecedente no es null. Puede usar esa propiedad para detectar la excepción y ver qué excepción provocó el error de la tarea. Si no tiene acceso a la propiedad Exception, no se controla la excepción. Asimismo, si intenta tener acceso a la propiedad Result de una tarea cancelada o con errores, se producirá una nueva excepción.

Esta opción no es válida para las continuaciones de varias tareas.

OnlyOnRanToCompletion 393216

Especifica que la continuación debe programarse únicamente si su antecedente se ejecuta completamente. Un antecedente se ejecuta por completo si su propiedad Status al finalizar es RanToCompletion. Esta opción no es válida para las continuaciones de varias tareas.

PreferFairness 1

Sugerencia a un objeto TaskScheduler para que programe las tareas en el orden en el que se programaron, de manera que haya más probabilidades de que las tareas programadas antes se ejecuten en primer lugar y las tareas programadas más tarde se ejecuten después.

RunContinuationsAsynchronously 64

Especifica que la tarea de continuación debe ejecutarse asincrónicamente. Esta opción tiene precedencia sobre ExecuteSynchronously.

Se aplica a