Freigeben über


task_group::run_and_wait-Methode

Plant eine Aufgabe im aufrufenden Kontext mit der Unterstützung von task_group-Objekt für vollständige Unterstützung der Abbruch inline ausgeführt werden.Die Funktion wartet dann, bis alle Arbeit zum task_group-Objekt entweder abgeschlossen oder abgebrochen wird.Wenn ein task_handle-Objekt als Parameter an run_and_wait übergeben wird, ist der Aufrufer zum Verwalten der Lebensdauer des Objekts task_handle verantwortlich.

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 der Aufgabe auszuführen.

  • _Task_handle
    Ein Handle für die Aufgabe, die inline im aufrufenden Kontext ausgeführt wird.Beachten Sie, dass der Aufrufer die Verantwortung für die Lebensdauer des Objekts verfügt.Die Laufzeit verwendet weiterhin zu erwarten, dass sie, um auf die Methode zu run_and_wait leben Ausführung beendet.

  • _Func
    Eine Funktion, die aufgerufen wird, um den Text der Arbeit aufzurufen.Dies kann ein Lambda-Ausdruck oder ein anderes Objekt mit einer Version des Operators Funktionsaufruf mit der Signatur void operator()() unterstützt.

Rückgabewert

Eine Angabe dazu, ob der Wartevorgang erfüllt war, oder die Aufgabengruppe abgebrochen wurde, entweder aufgrund eines expliziten Abbruchvorgangs oder einer Ausnahme, die von einer der Tasks ausgelöst wird.Weitere Informationen finden Sie unter task_group_status.

Hinweise

Beachten Sie, dass mindestens eine der Aufgaben, die möglicherweise in diesem task_group-Objekt geplant werden, inline im aufrufenden Kontext ausgeführt werden.

Wenn eine oder mehrere der Aufgaben, die in diesem task_group-Objekt geplant werden, eine Ausnahme auslöst, wählt die Laufzeit eine solche Ausnahme des Sie in der Liste aus und gibt sie aus dem Aufruf aus der run_and_wait-Methode.

Nach der Rückgabe von der run_and_wait-Methode für ein Objekt, task_group setzt die verstrichene Zeit auf das Objekt einen bereinigten Zustand zurück, in dem er wiederverwendet werden kann.Dies umfasst auch den Fall, in dem das task_group-Objekt abgebrochen wurde.

Im Nicht-Ausnahmepfad der Ausführung verfügen Sie über ein Mandat, um entweder dieser Methode oder der wait-Methode aufrufen, bevor der Destruktor task_group ausführt.

Anforderungen

Header: ppl.h

Namespace: Parallelität

Siehe auch

Referenz

task_group-Klasse

task_group::run-Methode

task_group::wait-Methode

Konzepte

Aufgabenparallelität (Concurrency Runtime)