TaskContinuationOptions Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Spécifie le comportement pour une tâche créée à l'aide de la méthode ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler) ou ContinueWith(Action<Task<TResult>>, TaskContinuationOptions).
Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.
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
- Héritage
- Attributs
Champs
AttachedToParent | 4 | Spécifie que la continuation, s'il s'agit d'une tâche enfant, est jointe à un parent dans la hiérarchie des tâches. La continuation peut être une tâche enfant uniquement si son antécédent est également une tâche enfant. Par défaut, une tâche enfant (autrement dit, une tâche interne créée par une tâche externe) est exécutée indépendamment de son parent. Vous pouvez utiliser l'option AttachedToParent pour que les tâches parente et enfant soient synchronisées. Notez que si une tâche parente est configurée avec l'option DenyChildAttach, l'option AttachedToParent de la tâche enfant n'a aucun effet, et la tâche enfant s'exécute en tant que tâche enfant détachée. Pour plus d'informations, consultez Tâches enfants attachées et détachées. |
DenyChildAttach | 8 | Indique qu'une tâche enfant (c'est-à-dire toute tâche interne imbriquée créée par cette continuation) créée avec l'option AttachedToParent et qui tente de s'exécuter comme une tâche enfant détachée ne peut pas être attachée à la tâche parente et s'exécute à la place comme tâche enfant détachée. Pour plus d'informations, consultez Tâches enfants attachées et détachées. |
ExecuteSynchronously | 524288 | Spécifie que la tâche de continuation doit être exécutée de façon synchrone. Quand cette option est activée, la continuation est exécutée sur le thread qui provoque le passage de la tâche antérieure à son état final. Si l'antécédent est déjà terminé lors de la création de la continuation, celle-ci s'exécute sur le thread qui crée la continuation. Si le CancellationTokenSource de l'antécédent est supprimé dans un bloc Étant donné que la tâche s'exécute de façon synchrone, il n'est pas nécessaire d'appeler une méthode telle que Wait() pour vous assurer que le thread appelant attend la fin de la tâche. |
HideScheduler | 16 | Spécifie que les tâches créées par la continuation en appelant des méthodes comme Run(Action) ou ContinueWith(Action<Task>) voient le planificateur par défaut (Default) plutôt que le planificateur sur lequel cette continuation s’exécute comme planificateur actuel. |
LazyCancellation | 32 | Dans le cas d'une annulation de continuation, empêche l'achèvement de la continuation tant que l'antécédent n'est pas terminé. |
LongRunning | 2 | Spécifie qu'une continuation sera une opération de longue durée et de granulosité grossière. Conseille au TaskScheduler de garantir le surabonnement. |
None | 0 | Quand aucune option de continuation n'est spécifiée, indique que le comportement par défaut doit être utilisé lors de l'exécution d'une continuation. La continuation s'exécute de façon asynchrone quand la tâche antécédente se termine, quelle que soit la valeur de propriété Status finale de l'antécédent. Si la continuation est une tâche enfant, elle est créée en tant que tâche imbriquée détachée. |
NotOnCanceled | 262144 | Spécifie que la tâche de continuation ne doit pas être planifiée si son antécédent a été annulé. Un antécédent est annulé si sa propriété Status à l'achèvement est Canceled. Cette option n’est pas valide pour les continuations multitâches. |
NotOnFaulted | 131072 | Spécifie que la tâche de continuation ne doit pas être planifiée si son antécédent a levé une exception non gérée. Un antécédent lève une exception non gérée si sa propriété Status à l‘achèvement est Faulted. Cette option n’est pas valide pour les continuations multitâches. |
NotOnRanToCompletion | 65536 | Spécifie que la tâche de continuation ne doit pas être planifiée si son antécédent s'est terminé. Un antécédent s'exécute jusqu'à son achèvement si sa propriété Status à l'achèvement est RanToCompletion. Cette option n’est pas valide pour les continuations multitâches. |
OnlyOnCanceled | 196608 | Spécifie que la continuation doit être planifiée uniquement si son antécédent a été annulé. Un antécédent est annulé si sa propriété Status à l'achèvement est Canceled. Cette option n’est pas valide pour les continuations multitâches. |
OnlyOnFaulted | 327680 | Spécifie que la tâche de continuation doit être planifiée uniquement si son antécédent a levé une exception non gérée. Un antécédent lève une exception non gérée si sa propriété Status à l‘achèvement est Faulted. L’option OnlyOnFaulted garantit que la propriété Exception de l’antécédent n’est pas Cette option n’est pas valide pour les continuations multitâches. |
OnlyOnRanToCompletion | 393216 | Spécifie que la continuation doit être planifiée uniquement si son antécédent s'est terminé. Un antécédent s'exécute jusqu'à son achèvement si sa propriété Status à l'achèvement est RanToCompletion. Cette option n’est pas valide pour les continuations multitâches. |
PreferFairness | 1 | Conseil à un TaskScheduler pour planifier des tâches dans l'ordre dans lequel elles ont été planifiées. Les tâches planifiées plus tôt sont plus susceptibles de s'exécuter plus tôt et celles planifiées plus tard sont plus susceptibles de s'exécuter ultérieurement. |
RunContinuationsAsynchronously | 64 | Indique que la tâche de continuation doit être exécutée de façon asynchrone. Cette option est prioritaire sur ExecuteSynchronously. |