Freigeben über


task_group-Klasse

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

class task_group;

Member

Öffentliche Konstruktoren

Name

Beschreibungen

task_group::task_group-Konstruktor

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

Beschreibungen

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.

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: Concurrency

Siehe auch

Referenz

Concurrency-Namespace

structured_task_group-Klasse

task_handle-Klasse