structured_task_group::run_and_wait-Methode
Plant eine Aufgabe, die mithilfe des structured_task_group-Objekts für vollständige Abbruchunterstützung inline auf dem aufrufenden Kontext ausgeführt werden soll.Wenn ein task_handle-Objekt als Parameter an run_and_wait übergeben wird, ist der Aufrufer verantwortlich dafür, die Lebensdauer des task_handle-Objekts zu verwalten.Die Funktion wartet dann, bis die gesamte Arbeit des structured_task_group-Objekts abgeschlossen oder abgebrochen wurde.
template<
class _Function
>
task_group_status run_and_wait(
task_handle<_Function>& _Task_handle
);
template<
class _Function
>
task_group_status run_and_wait(
const _Function& _Func
);
Parameter
_Function
Der Typ des Funktionsobjekts, das aufgerufen wird, um die Aufgabe auszuführen._Task_handle
Ein Handle für die Aufgabe, das inline auf dem aufrufenden Kontext ausgeführt wird.Beachten Sie, dass der Aufrufer die Verantwortung für die Lebensdauer dieses Objekts hat.Die Laufzeit erwartet weiterhin, dass es aktiv ist, bis die run_and_wait-Methode die Ausführung beendet._Func
Eine Funktion, die aufgerufen wird, um den Text der Arbeit aufzurufen.Dies kann ein Lambda-Ausdruck oder anderes Objekt sein, das eine Version des Funktionsaufrufoperators mit der Signatur void operator()() unterstützt.
Rückgabewert
Ein Anzeichen dafür, ob der Wartevorgang erfüllt wurde oder die Aufgabengruppe abgebrochen wurde, aufgrund eines expliziten Abbruchvorgangs oder einer Ausnahme, die von einer der zugehörigen Aufgaben ausgelöst wurde.Weitere Informationen finden Sie unter task_group_status.
Hinweise
Beachten Sie, dass ein oder mehrere für dieses structured_task_group-Objekt geplante Aufgaben möglicherweise inline auf dem aufrufenden Kontext ausgeführt werden.
Wenn eine oder mehrere der Aufgaben, die für dieses structured_task_group-Objekt geplant wurden, eine Ausnahme auslösen, wählt die Laufzeit nach eigenem Ermessen eine dieser Ausnahmen aus und gibt sie aus dem Aufruf weiter an die run_and_wait-Methode.
Nachdem diese Funktion einen Wert zurückgibt, wird das structured_task_group-Objekt in einem Endzustand betrachtet und sollte nicht verwendet werden.Beachten Sie, dass eine Verwendung nach dem Zurückkehren der run_and_wait-Methode zu einem nicht definierten Verhalten führt.
Im Nicht-Ausnahmepfad der Ausführung haben Sie die Pflicht, entweder diese Methode oder die wait-Methode aufzurufen, bevor der Destruktor von structured_task_group ausgeführt wird.
Anforderungen
Header: ppl.h
Namespace: Parallelität
Siehe auch
Referenz
structured_task_group::run-Methode
structured_task_group::wait-Methode