Udostępnij za pośrednictwem


structured_task_group — Klasa

structured_task_group Klasy reprezentuje kolekcję skomplikowanej strukturze równoległych pracy.Można kolejkować poszczególne zadania równolegle do structured_task_group za pomocą task_handle obiektów i poczekaj, aż do ukończenia lub anulować grupy zadań przed zakończeniu ich wykonywania, który spowoduje przerwanie wszystkich zadań, które nie rozpoczęły wykonywanie.

class structured_task_group;

Członkowie

Publiczne konstruktory

Nazwa

Opis

structured_task_group::structured_task_group — Konstruktor

Przeciążone.Tworzy nowy structured_task_group obiektu.

structured_task_group::~structured_task_group — Destruktor

Niszczy structured_task_group obiektu.Najprawdopodobniej wywołanie albo wait lub run_and_wait metody obiektu przed wykonaniem destruktor, chyba że jest wykonywany destruktor wyniku stosu korekty ze względu na wyjątek.

Metody publiczne

Nazwa

Opis

structured_task_group::cancel — Metoda

Powoduje, że Optymalna szybkość próbę anulowania poddrzewa pracy mające początek w tym grupy zadań.Każde zadanie zaplanowane na grupy zadań będzie uzyskać anulowane przechodni, jeśli to możliwe.

structured_task_group::is_canceling — Metoda

Informuje wywołującego, czy grupy zadań jest obecnie w pośród anulowania rezerwacji.Nie musi to oznaczać, cancel wywołano metodę structured_task_group obiektu (chociaż takie wiec tej metody do zwrotu true).Zaistnieć sytuacja, że structured_task_group obiektu jest wykonywany wbudowane i dalsze grupy zadań up w drzewie pracy została anulowana.W przypadkach takich jak te gdzie środowiska wykonawczego można określić, że anulowanie będzie przepływał przez to structured_task_group obiektu, true będą zwracane również.

structured_task_group::run — Metoda

Przeciążone.Planuje zadanie na structured_task_group obiektu.Obiekt wywołujący zarządza istnienia task_handle obiektu przekazany w _Task_handle parametru.Wersja, która przyjmuje parametr _Placement powoduje być obciążona w kierunku wykonywania w lokalizacji określonej przez parametr tego zadania.

structured_task_group::run_and_wait — Metoda

Przeciążone.Planuje zadanie do uruchomienia wbudowanej w kontekście wywołującego przy pomocy structured_task_group obiektu dla obsługi pełnego anulowania.Jeśli task_handle obiektu jest przekazywana jako parametr do run_and_wait, obiekt wywołujący jest odpowiedzialna za zarządzanie istnienia task_handle obiektu.Funkcja następnie czeka, aż wszystkie pracować nad structured_task_group obiektu została zakończona lub zostało anulowane.

structured_task_group::wait — Metoda

Czeka, aż wszystkie pracować nad structured_task_group została ukończona lub jest anulowana.

Uwagi

Istnieje wiele poważnych ograniczeń nałożonych na wykorzystanie structured_task_group obiektu w celu uzyskania wyników:

  • Jeden structured_task_group przez wiele wątków nie można użyć obiektu.Wszystkie operacje na structured_task_group obiektu muszą być przeprowadzane przez wątek, która utworzyła obiekt.Dwa wyjątki od tej reguły są funkcje składowe cancel i is_canceling.Obiekt nie może być na liście przechwytywania wyrażenie lambda i używane w ramach zadań, chyba, że zadanie jest za pomocą jednej operacji anulowania.

  • Wszystkie zadania zaplanowane na structured_task_group obiektu są planowane, korzystając z task_handle , który musi jawnie zarządzać okresem istnienia obiektów.

  • Wiele grup wykorzystane jedynie w celu absolutnie zagnieżdżone.Jeśli dwa structured_task_group zgłaszane są obiekty, drugi deklarowania (jeden wewnętrzny) należy zniszczyć przed każdą metodę, z wyjątkiem cancel lub is_canceling jest wywoływana na pierwszą (jedna zewnętrzna).Ten warunek obowiązuje w przypadku deklarowania po prostu wielu structured_task_group obiektów w tej samej lub funkcjonalnie zagnieżdżonych zakresów, jak również przypadku zadanie, które zostało umieszczone w kolejce do structured_task_group via run lub run_and_wait metody.

  • W przeciwieństwie do ogólnego task_group klasy wszystkich Państw w structured_task_group klasy są ostateczne.Po w kolejce zadań do grupy i oczekiwały im do wykonania nie można używać tej samej grupy ponownie.

Aby uzyskać więcej informacji, zobacz Równoległość zadania (współbieżność środowiska wykonawczego).

Hierarchii dziedziczenia

structured_task_group

Wymagania

Nagłówek: ppl.h

Obszar nazw: współbieżności

Zobacz też

Informacje

concurrency — Przestrzeń nazwy

task_group — Klasa

task_handle — Klasa