TaskContinuationOptions Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 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 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. |