Share via


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 den Text des Aufgabenhandles 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.

Sobald diese Funktion zurückkehrt, wird das structured_task_group-Objekt als in einem abschließenden Zustand betrachtet und sollte nicht mehr 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: Concurrency

Siehe auch

Referenz

structured_task_group-Klasse

structured_task_group::run-Methode

structured_task_group::wait-Methode

Konzepte

Aufgabenparallelität (Concurrency Runtime)