Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

TaskContinuationOptions énumération

 

Date de publication : novembre 2016

Spécifie le comportement pour une tâche créée à l'aide de la méthode Task.ContinueWith ou Task<TResult>.ContinueWith.

Cette énumération possède un attribut FlagsAttribute qui permet une combinaison d’opérations de bits de ses valeurs membres.

Espace de noms:   System.Threading.Tasks
Assembly:  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
[FlagsAttribute]
public enum TaskContinuationOptions

Nom du membreDescription
AttachedToParent

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 TaskContinuationOptions.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 Attached and Detached Child Tasks.

DenyChildAttach

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 TaskCreationOptions.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

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 finally (Finally en Visual Basic), une continuation avec cette option s'exécutera dans ce bloc finally. Seules les continuations très brèves doivent être exécutées de façon synchrone.

É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 Task.Wait pour vous assurer que le thread appelant attend la fin de la tâche.

HideScheduler

Spécifie que les tâches créées par la continuation en appelant des méthodes comme Task.Run ou Task.ContinueWith voient le planificateur par défaut (TaskScheduler.Default) plutôt que le planificateur sur lequel cette continuation s’exécute comme planificateur actuel.

LazyCancellation

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

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

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é Task.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

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é Task.Status à l'achèvement est TaskStatus.Canceled. Cette option n'est pas valide pour les continuations multitâches.

NotOnFaulted

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é Task.Status à l'achèvement est TaskStatus.Faulted. Cette option n'est pas valide pour les continuations multitâches.

NotOnRanToCompletion

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é Task.Status à l'achèvement est TaskStatus.RanToCompletion. Cette option n'est pas valide pour les continuations multitâches.

OnlyOnCanceled

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é Task.Status à l'achèvement est TaskStatus.Canceled. Cette option n'est pas valide pour les continuations multitâches.

OnlyOnFaulted

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é Task.Status à l'achèvement est TaskStatus.Faulted.

L'option OnlyOnFaulted garantit que la propriété Task.Exception de l'antécédent n'est pas null. Vous pouvez utiliser cette propriété pour intercepter l'exception et voir quelle exception a provoqué l'erreur de la tâche. Si vous n'accédez pas à la propriété Exception, l'exception n'est pas gérée. De plus, si vous essayez d'accéder à la propriété Result d'une tâche qui été annulée ou a rencontré une erreur, une nouvelle exception est levée.

Cette option n'est pas valide pour les continuations multitâches.

OnlyOnRanToCompletion

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é Task.Status à l'achèvement est TaskStatus.RanToCompletion. Cette option n'est pas valide pour les continuations multitâches.

PreferFairness

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

Indique que la tâche de continuation doit être exécutée de façon synchrone. Cette option est prioritaire sur TaskContinuationOptions.ExecuteSynchronously.

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 4.0
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 5.0
Silverlight pour Windows Phone
Disponible depuis 8.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: