task_completion_event, classe
La classe task_completion_event
vous permet de retarder l'exécution d'une tâche jusqu'à ce qu'une condition soit satisfaite, ou de démarrer une tâche en réponse à un événement externe.
Syntaxe
template<typename _ResultType>
class task_completion_event;
template<>
class task_completion_event<void>;
Paramètres
_ResultType
Type de résultat de cette classe task_completion_event
.
Membres
Constructeurs publics
Nom | Description |
---|---|
task_completion_event | Construit un objet task_completion_event . |
Méthodes publiques
Nom | Description |
---|---|
set | Surcharge. Définit l'événement de fin de tâche. |
set_exception | Surcharge. Propage une exception à toutes les tâches associées à cet événement. |
Notes
Utilisez une tâche créée à partir d’un événement de fin de tâche quand votre scénario vous oblige à créer une tâche qui va se terminer. La continuation de son exécution est ainsi planifiée, à un moment donné dans le futur. Le task_completion_event
doit avoir le même type que la tâche que vous créez et l'appel de la méthode set sur l'événement de fin de tâche avec une valeur de ce type entraîne la fin de tâche associée et fournit cette valeur comme résultat de la continuation de la tâche.
Si l'événement de fin de tâche n'est jamais signalé, toutes les tâches créées à partir de celle-ci seront annulées durant sa destruction.
task_completion_event
se comporte comme un pointeur intelligent et doit être passé par valeur.
Hiérarchie d'héritage
task_completion_event
Spécifications
En-tête : ppltasks.h
Espace de noms : concurrency
set
Définit l'événement de fin de tâche.
bool set(_ResultType _Result) const ;
bool set() const ;
Paramètres
_Résultat
Résultat avec lequel définir cet événement.
Valeur de retour
La méthode retourne true
si elle a réussi à définir l’événement. Elle retourne false
si l’événement est déjà défini.
Notes
En présence de plusieurs appels simultanés vers set
, seul le premier appel réussit et son résultat (le cas échéant) sera stocké dans l’événement d’achèvement de la tâche. Les jeux restants sont ignorés et la méthode retourne false. Lorsque vous définissez un événement d’achèvement de tâche, toutes les tâches créées à partir de cet événement se terminent immédiatement et ses continuations, le cas échéant, seront planifiées. Les objets d’achèvement de tâche qui ont un _ResultType
autre type void
de données passent la valeur à leurs continuations.
set_exception
Propage une exception à toutes les tâches associées à cet événement.
template<typename _E>
__declspec(noinline) bool set_exception(_E _Except) const;
__declspec(noinline) bool set_exception(std::exception_ptr _ExceptionPtr) const ;
Paramètres
_E
Type d'exception.
_Sauf
Exception à définir.
_ExceptionPtr
Pointeur d’exception à définir.
Valeur de retour
task_completion_event
Construit un objet task_completion_event
.
task_completion_event();