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 |
---|---|
Przeciążone.Tworzy nowy structured_task_group obiektu. |
|
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 |
---|---|
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. |
|
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ż. |
|
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. |
|
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. |
|
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