Share via


task_completion_event-klasse

Met task_completion_event de klasse kunt u de uitvoering van een taak uitstellen totdat aan een voorwaarde is voldaan of een taak starten als reactie op een externe gebeurtenis.

Syntaxis

template<typename _ResultType>
class task_completion_event;

template<>
class task_completion_event<void>;

Parameterwaarden

_ResultType
Het resultaattype van deze task_completion_event klasse.

Leden

Openbare constructors

Naam Description
taak_voltooiing_gebeurtenis Maakt een task_completion_event object.

Openbare methoden

Naam Description
set Overbelast. Hiermee stelt u de gebeurtenis voor het voltooien van de taak in.
set_exception Overbelast. Hiermee wordt een uitzondering doorgegeven aan alle taken die aan deze gebeurtenis zijn gekoppeld.

Opmerkingen

Gebruik een taak die is gemaakt op basis van een taakvoltooiingsgebeurtenis wanneer uw scenario vereist dat u een taak creƫert die voltooit, waardoor de vervolgbewerkingen kunnen worden gepland voor uitvoering op een toekomstige tijdstip. Het task_completion_event moet hetzelfde type hebben als de taak die u maakt, en door de set-methode op de taakvoltooiingsgebeurtenis aan te roepen met een waarde van dat type, wordt de gekoppelde taak voltooid en wordt die waarde als resultaat doorgegeven aan de vervolgtaken.

Als de voltooiingsgebeurtenis van de taak nooit wordt gesignaleerd, worden alle taken die hierop zijn gemaakt, geannuleerd wanneer deze wordt gedestructeerd.

task_completion_event gedraagt zich als een smart pointer en moet als waarde worden doorgegeven.

Overnamehiƫrarchie

task_completion_event

Requirements

Koptekst: ppltasks.h

Naamruimte: concurrentie

set

Hiermee stelt u de gebeurtenis voor het voltooien van de taak in.

bool set(_ResultType _Result) const ;

bool set() const ;

Parameterwaarden

_Resultaat
Het resultaat waarmee deze gebeurtenis moet worden ingesteld.

Retourwaarde

De methode retourneert true als deze is geslaagd bij het instellen van de gebeurtenis. Deze retourneert false als de gebeurtenis al is ingesteld.

Opmerkingen

In aanwezigheid van meerdere of gelijktijdige aanroepen naar set, slaagt alleen de eerste aanroep en wordt het resultaat (indien aanwezig) opgeslagen in de voltooiingsbeurt van de taak. De resterende sets worden genegeerd en de methode retourneert false. Wanneer u een gebeurtenis voor het voltooien van een taak instelt, worden alle taken die op basis van die gebeurtenis zijn gemaakt, onmiddellijk voltooid en worden de vervolgen, indien van toepassing, gepland. Taakvoltooiingsobjecten die een _ResultType andere waarde hebben dan void , geven de waarde door aan hun vervolgen.

set_exception (stel uitzondering in)

Hiermee wordt een uitzondering doorgegeven aan alle taken die aan deze gebeurtenis zijn gekoppeld.

template<typename _E>
__declspec(noinline) bool set_exception(_E _Except) const;

__declspec(noinline) bool set_exception(std::exception_ptr _ExceptionPtr) const ;

Parameterwaarden

_E
Het uitzonderingstype.

_Behalve
De in te stellen uitzondering.

_ExceptionPtr
De uitzonderingspointer die moet worden ingesteld.

Retourwaarde

taak_voltooiing_gebeurtenis

Maakt een task_completion_event object.

task_completion_event();

Zie ook

concurrentie Namespace