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