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 |
---|---|
Erstellt ein neues task_group-Objekt. |
|
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 |
---|---|
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. |
|
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. |
|
Ü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. |
|
Ü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. |
|
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
Anforderungen
Header: ppl.h
Namespace: Concurrency