Partager via


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();

Voir aussi

accès concurrentiel Namespace