Udostępnij za pośrednictwem


Klasa structured_task_group

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

Dd504799.collapse_all(pl-pl,VS.110).gifPubliczne konstruktory

Nazwa

Opis

Konstruktor structured_task_group::structured_task_group

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.

Dd504799.collapse_all(pl-pl,VS.110).gifMetody publiczne

Nazwa

Opis

Metoda structured_task_group::Cancel

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.

Metoda structured_task_group::is_canceling

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ż.

Metoda structured_task_group::Run

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.

Metoda structured_task_group::run_and_wait

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.

Metoda structured_task_group::wait

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 Zadanie równoległości (współbieżności Runtime).

Hierarchii dziedziczenia

structured_task_group

Wymagania

Nagłówek: ppl.h

Obszar nazw: współbieżności

Zobacz też

Informacje

Współbieżność obszaru nazw

Klasa task_group

Klasa task_handle