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 d’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
| Nom | Valeur | Description |
|---|---|---|
| None | 0 | Quand aucune option de continuation n’est spécifiée, spécifie 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 lorsque la tâche antécédente se termine, quelle que soit la valeur de propriété finale Status 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. |
| PreferFairness | 1 | Indicateur pour planifier une TaskScheduler tâche dans l’ordre dans lequel elles ont été planifiées, afin que les tâches planifiées plus tôt soient plus susceptibles d’être exécutées plus tôt, et les tâches planifiées plus tard sont plus susceptibles d’être exécutées ultérieurement. |
| LongRunning | 2 | Spécifie qu’une continuation sera une opération à long terme et à grain. Il fournit un indicateur au fait que la TaskScheduler sursubscription peut être justifiée. |
| AttachedToParent | 4 | Spécifie que la continuation, s’il s’agit d’une tâche enfant, est attachée à 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) s’exécute indépendamment de son parent. Vous pouvez utiliser l’option AttachedToParent pour que les tâches parent 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 | Spécifie que toute tâche enfant (autrement dit, toute tâche interne imbriquée créée par cette continuation) créée avec l’option AttachedToParent et les tentatives d’exécution en tant que tâche enfant attachée ne pourront pas s’attacher à la tâche parente et s’exécuteront à la place en tant que tâche enfant détachée. Pour plus d'informations, consultez Tâches enfants attachées et détachées. |
| HideScheduler | 16 | Spécifie que les tâches créées par la continuation en appelant des méthodes telles que Run(Action) ou ContinueWith(Action<Task>) voir le planificateur par défaut (Default) plutôt que le planificateur sur lequel cette continuation s’exécute en tant que planificateur actuel. |
| LazyCancellation | 32 | En cas d’annulation de continuation, empêche l’achèvement de la continuation jusqu’à ce que l’antécédent soit terminé. |
| RunContinuationsAsynchronously | 64 | Spécifie que la tâche de continuation doit être exécutée de manière asynchrone. Cette option a la priorité sur ExecuteSynchronously. |
| NotOnRanToCompletion | 65536 | Spécifie que la tâche de continuation ne doit pas être planifiée si son antécédent s’est exécuté jusqu’à l’achèvement. Une antécédente s’exécute jusqu’à la fin si sa Status propriété à l’achèvement est RanToCompletion. Cette option n’est pas valide pour les continuations multi-tâ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 Status propriété à l’achèvement est Faulted. Cette option n’est pas valide pour les continuations multi-tâches. |
| OnlyOnCanceled | 196608 | Spécifie que la continuation ne doit être planifiée que si son antécédent a été annulé. Une antécédente est annulée si sa Status propriété à l’achèvement est Canceled. Cette option n’est pas valide pour les continuations multi-tâches. |
| NotOnCanceled | 262144 | Spécifie que la tâche de continuation ne doit pas être planifiée si son antécédent a été annulé. Une antécédente est annulée si sa Status propriété à l’achèvement est Canceled. Cette option n’est pas valide pour les continuations multi-tâ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 Status propriété à l’achèvement est Faulted. L’option OnlyOnFaulted garantit que la Exception propriété dans l’antécédent n’est pas Cette option n’est pas valide pour les continuations multi-tâches. |
| OnlyOnRanToCompletion | 393216 | Spécifie que la continuation doit être planifiée uniquement si son antécédent s’est exécuté jusqu’à la fin. Une antécédente s’exécute jusqu’à la fin si sa Status propriété à l’achèvement est RanToCompletion. Cette option n’est pas valide pour les continuations multi-tâches. |
| ExecuteSynchronously | 524288 | Spécifie que la tâche de continuation doit être exécutée de manière synchrone. Avec cette option spécifiée, la continuation s’exécute sur le même thread qui provoque la transition de la tâche antécédente vers son état final. Si l’antécédent est déjà terminé lors de la création de la continuation, la continuation s’exécute sur le thread qui crée la continuation. Si l'antécédent CancellationTokenSource 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, par Wait() exemple pour vous assurer que le thread appelant attend que la tâche se termine. |