Freigeben über


task_group-Klasse

 

Veröffentlicht: Juli 2016

Die task_group-Klasse stellt eine Auflistung der parallelen Arbeit dar, auf die gewartet oder die abgebrochen werden kann.

Syntax

class task_group;

Member

Öffentliche Konstruktoren

Name

Beschreibung

task_group::task_group-Konstruktor

Überladen. Erstellt ein neues task_group-Objekt.

task_group::~task_group-Destruktor

Zerstört ein task_group-Objekt. Von Ihnen wird erwartet, entweder die wait-Methode oder run_and_wait-Methode vor der Zerstörung des ausgeführten Destruktors für das Objekt aufzurufen, außer wenn der Destruktor als Ergebnis der Stapelentladung aufgrund einer Ausnahme ausgeführt wird.

Öffentliche Methoden

Name

Beschreibung

task_group::cancel-Methode

Versucht bestmöglich, die Teilstruktur der Arbeit abzubrechen, die aus dieser Aufgabengruppe stammt. Jede in der Aufgabengruppe geplante Aufgabe wird transitiv abgebrochen, wenn möglich.

task_group::is_canceling-Methode

Informiert den Aufrufer, ob die Aufgabengruppe gerade in der Mitte eines Abbruchs ist. Dies gibt nicht notwendigerweise an, dass die cancel-Methode für das task_group-Objekt aufgerufen wurde (obwohl dies diese Methode bestimmt dazu qualifiziert, true zurückzugeben). Möglicherweise wird das task_group-Objekt inline ausführt, und eine Aufgabengruppe weiter oben in der Arbeitsstruktur wurde abgebrochen. In Fällen wie diesen, in denen die Laufzeit vorzeitig bestimmen kann, dass der Abbruch durch dieses task_group-Objekt fließen wird, wird außerdem true zurückgegeben.

task_group::run-Methode

Überladen. Plant eine Aufgabe für das task_group-Objekt. Wenn ein task_handle-Objekt als Parameter an run übergeben wird, ist der Aufrufer verantwortlich dafür, die Lebensdauer des task_handle-Objekts zu verwalten. Die Version der Methode, die einen Verweis auf ein Funktionsobjekt als Parameter akzeptiert, schließt Heapbelegung in der Laufzeit ein, was möglicherweise weniger gut als die Version funktioniert, die einen Verweis auf ein task_handle-Objekt akzeptiert. Die Version, die den _Placement-Parameter akzeptiert, durch die die Aufgabe, zum Ausführung am Speicherort beeinflusst werden, dass durch diesen Parameter angegeben.

task_group::run_and_wait-Methode

Überladen. Plant eine Aufgabe, die mithilfe des task_group-Objekts für vollständige Abbruchunterstützung inline auf dem aufrufenden Kontext ausgeführt werden soll. Die Funktion wartet dann, bis die gesamte Arbeit des task_group-Objekts abgeschlossen oder abgebrochen wurde. 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.

task_group::wait-Methode

Wartet, bis die gesamte Arbeit des task_group-Objekts abgeschlossen oder abgebrochen wurde.

Hinweise

Anders als die stark eingeschränkte structured_task_group-Klasse bildet die task_group-Klasse ein viel allgemeineres Konstrukt. Hat keine der von structured_task_group beschriebenen Einschränkungen. task_group-Objekte können über Threads hinweg sicher und frei verwendet werden. Der Nachteil des task_group-Konstrukts ist, dass seine Leistung nicht so gut wie die des structured_task_group-Konstrukts bei Aufgaben ist, die kleine Mengen an Arbeit ausführen.

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

Vererbungshierarchie

task_group

Anforderungen

Header: ppl.h

Namespace: Parallelität

Siehe auch

concurrency-Namespace
structured_task_group-Klasse
task_handle-Klasse