Freigeben über


task_completion_event-Klasse

Mit der task_completion_event-Klasse können Sie die Ausführung einer Aufgabe verzögern, bis eine Bedingung erfüllt ist, oder eine Aufgabe als Reaktion auf ein externes Ereignis starten.

Syntax

template<typename _ResultType>
class task_completion_event;

template<>
class task_completion_event<void>;

Parameter

_ResultType
Der Ergebnistyp dieser task_completion_event-Klasse.

Member

Öffentliche Konstruktoren

Name Beschreibung
task_completion_event Erstellt ein task_completion_event-Objekt.

Öffentliche Methoden

Name Beschreibung
set Überladen. Legt das Aufgabenabschlussereignis fest.
set_exception Überladen. Gibt eine Ausnahme an alle Aufgaben weiter, die dem Ereignis zugeordnet sind.

Hinweise

Verwenden Sie eine Aufgabe, die aus einem Aufgabenabschlussereignis erstellt wird, wenn Ihr Szenario die Erstellung einer Aufgabe erfordert, die abgeschlossen wird, und planen Sie die Ausführung ihrer Fortsetzungen für einen späteren Zeitpunkt. task_completion_event muss den gleichen Typ haben, wie die Aufgabe, die Sie erstellen, und das Aufrufen der set-Methode für das Aufgabenabschlussereignis mit einem Wert dieses Typs führt zu einem Abschluss der zugeordneten Aufgabe und liefert diesen Wert als Ergebnis ihrer Fortsetzungen.

Wenn das Aufgabenabschlussereignis kein Signal erhält, werden alle Aufgaben, die daraus erstellt wurden, abgebrochen, wenn es zerstört wird.

task_completion_event verhält sich wie ein intelligenter Zeiger und sollte von einem Wert übergeben werden.

Vererbungshierarchie

task_completion_event

Anforderungen

Kopfzeile: ppltasks.h

Namespace: Parallelität

set

Legt das Aufgabenabschlussereignis fest.

bool set(_ResultType _Result) const ;

bool set() const ;

Parameter

_Ergebnis
Das Ergebnis, das für dieses Ereignis festgelegt werden soll.

Rückgabewert

Die Methode gibt zurück true , wenn dies erfolgreich war, wenn das Ereignis festgelegt wurde. Es wird zurückgegeben false , wenn das Ereignis bereits festgelegt ist.

Hinweise

Bei mehrfachen oder gleichzeitigen Aufrufen von set ist nur der erste Aufruf erfolgreich, und sein Ergebnis (falls vorhanden) wird im Aufgabenabschlussereignis gespeichert. Die verbleibenden Sätze werden ignoriert, und die Methode gibt "false" zurück. Wenn Sie ein Aufgabenabschlussereignis festlegen, werden alle Aufgaben, die aus diesem Ereignis erstellt wurden, abgeschlossen, und ihre Fortsetzungen, falls vorhanden, werden geplant. Aufgabenabschlussobjekte, die einen _ResultType anderen Wert aufweisen als void den Wert an ihre Fortsetzungen übergeben.

set_exception

Gibt eine Ausnahme an alle Aufgaben weiter, die dem Ereignis zugeordnet sind.

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

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

Parameter

_E
Der Ausnahmetyp.

_Außer
Die festzulegende Ausnahme.

_ExceptionPtr
Der festzulegende Ausnahmezeiger.

Rückgabewert

task_completion_event

Erstellt ein task_completion_event-Objekt.

task_completion_event();

Siehe auch

Concurrency-Namespace