Share via


structured_task_group-Klasse

Die structured_task_group-Klasse stellt eine hoch parallele Arbeitsvorgänge strukturierte Auflistung dar.Sie können eine Warteschlange einzelpersonen-Ähnlichkeits Aufgaben zu structured_task_group mit task_handle-Objekte und Wartung sie abzuschließen, oder brechen Sie die Aufgabengruppe ab, bevor die Ausführung beendet haben, das alle Aufgaben abgebrochen wird, die nicht die Ausführung gestartet wurden.

class structured_task_group;

Member

Dd504799.collapse_all(de-de,VS.110).gifÖffentliche Konstruktoren

Name

Beschreibung

structured_task_group::structured_task_group-Konstruktor

Überladen.Erstellt ein neues structured_task_group-Objekt.

structured_task_group::~structured_task_group-Destruktor

Zerstört ein structured_task_group-Objekt.Sie können entweder erwartet, wait oder run_and_wait-Methode für das Objekt vor dem Aufruf Destruktor ausgeführt, es sei denn, der Destruktor aufgrund der Stapelentladung aufgrund einer Ausnahme ausgeführt wird.

Dd504799.collapse_all(de-de,VS.110).gifÖffentliche Methoden

Name

Beschreibung

structured_task_group::cancel-Methode

Legt einen optimalen Aufwands, haben die Teilstruktur der Arbeit an der Aufgabengruppe abbrechen Stamm.Jede Aufgabe, die in der Aufgabengruppe abgebrochen wird geplant ist transitiv ab, falls möglich.

structured_task_group::is_canceling-Methode

Benachrichtigt den Aufrufer, ob die Aufgabengruppe gerade inmitten eines Abbruchs ist.Dies führt nicht unbedingt gibt an, dass die cancel-Methode für den structured_task_group-Objekt aufgerufen wurde (obwohl dies zweifellos diese Methode qualifiziert, um true zurückzugeben).Es kann angewendet werden, dass das Objekt structured_task_group inline ausgeführt wird und eine Aufgabengruppe weiter oben in der Arbeitsstruktur abgebrochen wurde.In diesen Fällen, z. B. die vorzeitige Laufzeit bestimmt werden kann, ob ein Abbruch dieses structured_task_group-Objekt durchfließt true, wird ebenfalls zurückgegeben.

structured_task_group::run-Methode

Überladen.Plant eine Aufgabe im structured_task_group-Objekt.Der Aufrufer verwaltet die Lebensdauer des task_handle-Objekts, das in den _Task_handle-Parameter übergeben wird.Die Version, die den Parameter _Placement hat bewirkt, dass die Aufgabe, in Bezug auf das Ausführen am Speicherort beeinflusst wird, der von diesem Parameter angegeben wird.

structured_task_group::run_and_wait-Methode

Überladen.Plant eine Aufgabe im aufrufenden Kontext mit der Unterstützung von structured_task_group-Objekt für vollständige Unterstützung der Abbruch inline ausgeführt werden.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.Die Funktion wartet dann, bis alle Arbeit zum structured_task_group-Objekt entweder abgeschlossen oder abgebrochen wird.

structured_task_group::wait-Methode

Wartet, bis alle Arbeiten an structured_task_group abgeschlossen oder abgebrochen wird.

Hinweise

Es gibt mehrere schwere Einschränkungen, die auf einem structured_task_group-Objekts platziert werden, um die Leistung zu erhalten:

  • Ein einzelnes structured_task_group-Objekt kann nicht durch mehrere Threads verwendet werden.Alle Vorgänge in einem structured_task_group-Objekt muss von dem Thread ausgeführt, der das Objekt erstellt wurde.Die zwei Ausnahmen von dieser Regel sind die Memberfunktionen cancel und is_canceling.Das Objekt, das nicht in der Liste das Aufzeichnen eines Lambda-Ausdrucks sein und wird innerhalb einer Aufgabe verwendet werden, es sei denn, die Aufgabe einen der Vorgänge Abbruch verwendet.

  • Alle Tasks, die einem structured_task_group-Objekt geplant werden, werden durch die Verwendung task_handle-Objekten geplant, dessen Lebensdauer müssen Sie explizit verwalten.

  • Mehrere Gruppen werden in nur absolut geschachtelter Reihenfolge verwendet werden.Wenn zwei structured_task_group-Objekte deklariert werden, die zweite muss deklariert wird (das innere) zerstört, bevor um jede Methode außer cancel oder is_canceling das erste aufgerufen wird (das äußere).Diese Bedingung wahr ist, wird im Fall von mehreren structured_task_group-Objekte innerhalb derselben Funktion einfach deklarieren oder geschachtelte Bereiche an sowie den Fall einer Aufgabe, die structured_task_group über die run oder run_and_wait-Methoden in die Warteschlange gestellt wurde.

  • Im Gegensatz zu den allgemeinen Klasse task_group sind alle Bedingungen in der structured_task_group endgültig Klasse.Nachdem Sie die Aufgaben zur Gruppe und darauf gewartet, um abzuschließen in die Warteschlange gestellt haben, verwenden Sie möglicherweise nicht die gleiche Gruppe wieder.

Weitere Informationen finden Sie unter Aufgabenparallelität (Concurrency Runtime).

Vererbungshierarchie

structured_task_group

Anforderungen

Header: ppl.h

Namespace: Parallelität

Siehe auch

Referenz

concurrency-Namespace

task_group-Klasse

task_handle-Klasse