Udostępnij za pośrednictwem


concurrency — Przestrzeń nazwy

Przestrzeń nazw Concurrency zawiera klasy i funkcje, które umożliwiają dostęp do środowiska wykonawczego Concurrency, platformy programowania współbieżnego dla C++.Aby uzyskać więcej informacji, zobacz Współbieżność środowiska wykonawczego.

namespace concurrency;

Elementy członkowskie

Przestrzenie nazw

Nazwa

Opis

concurrency::extensibility Namespace

Typedefs

Nazwa

Opis

runtime_object_identity

Każde wystąpienie wiadomości ma tożsamość, która podąża za nim podczas klonowania i jest przekazywana pomiędzy składnikami obsługi wiadomości.To nie może być adres obiektu wiadomości.

task_status

Typ, który reprezentuje stan końcowy zadania.Prawidłowe wartości to completed i canceled.

TaskProc

Podstawowa abstrakcja dla zadania, zdefiniowana jako void (__cdecl * TaskProc)(void *).TaskProc jest używany do wywołania ciała zadania.

TaskProc_t

Podstawowa abstrakcja dla zadania, zdefiniowana jako void (__cdecl * TaskProc_t)(void *).TaskProc jest używany do wywołania ciała zadania.

Klasy

Nazwa

Opis

affinity_partitioner — Klasa

Klasa affinity_partitioner jest podobna do klasy static_partitioner, ale poprawia koligację pamięci podręcznej przez mapowanie podzakresów na wątki robocze.To znacznie zwiększa wydajność, gdy pętla zostanie ponownie wykonana przez ten sam zestaw danych a dane wpisane są w pamięci podręcznej.Należy zauważyć, że ten sam obiekt affinity_partitioner musi być użyty podczas kolejnych iteracji równoległej pętli, która jest wykonywana na określonym zestawie danych, aby czerpać korzyści z danych lokalnych.

agent — Klasa

Klasa przeznaczona do stosowania jako klasa podstawowa dla wszystkich agentów niezależnych.Służy do ukrycia stanu innych agentów i interakcji za pomocą przekazywania wiadomości.

auto_partitioner — Klasa

Klasa auto_partitioner reprezentuje domyślne metody parallel_for, parallel_for_each i parallel_transform używane do podziału zakresu przez który ta klasa iteruje.Ta metoda partycjonowania zakresu pracowników opiera się na zrównoważeniu obciążenia jak i na anulowaniu per iteracja.

bad_target — Klasa

Ta klasa opisuje wyjątek wyrzucany, gdy do bloku obsługi wiadomości został podany wskaźnik na element docelowy, który jest nieprawidłowy dla wykonywanej operacji.

call — Klasa

Blok obsługi wiadomości call to blok o wielu elementach źródłowych, uporządkowany target_block, który wywołuje określoną funkcję podczas odbierania wiadomości.

cancellation_token — Klasa

Klasa cancellation_token reprezentuje zdolność do określenia, czy zażądano anulowania pewnej operacji.Dany token może być skojarzony z task_group, structured_task_group, lub task, aby zapewnić anulowanie niejawne.Również może być sondowany o wykreślenie lub wywołanie zwrotne zarejestrowane dla, jeśli i gdy powiazany cancellation_token_source został anulowany.

cancellation_token_registration — Klasa

Klasa cancellation_token_registration reprezentuje powiadomienie o wywołaniu zwrotnym od obiektu cancellation_token.Gdy metoda register w cancellation_token umożliwia otrzymywanie powiadomień o czasie wystąpienia anulowania, obiekt cancellation_token_registration jest zwracany jako uchwyt do funkcji zwrotnej. Dzięki temu obiekt wywołujący może żądać, aby konkretne wywołanie zwrotne nie było już dokonywane za pomocą metody deregister.

cancellation_token_source — Klasa

Klasa cancellation_token_source reprezentuje zdolność do anulowania pewnej operacji możliwej do anulowania.

choice — Klasa

Blok obsługi wiadomości choice to blok o wielu elementach źródłowych i pojedynczym docelowym, który reprezentuje interakcję przepływu kontroli ze zbiorem źródeł.Block choice będzie czekał na dowolny z wielu źródeł, aż ten wyprodukuje wiadomość a następnie wypropaguje indeks źródła, które wyprodukowało wiadomość.

combinable — Klasa

Obiekt combinable<T> jest przeznaczony do dostarczenia prywatnych w ramach wątku, kopii danych, w celu wykonania wolnych od blokad lokalnych obliczeń pomocniczych w wątku podczas algorytmów równoległych.Na końcu operacji równoległej, obliczenia pomocnicze mogą zostać scalone w wynik końcowy.Klasa może zostać użyta zamiast współdzielonej zmiennej i może przynieść efekt w ulepszeniu wydajności, w przypadku gdyby występowały częste rywalizacje o współdzieloną zmienną.

concurrent_priority_queue — Klasa

Klasa concurrent_priority_queue jest kontenerem, który pozwala wielu wątkom na współbieżne wrzucanie i ściąganie elementów z kolejki.Elementy są umieszczane w kolejce według priorytetów określonych przez funktor dostarczony jako argument szablonu.

concurrent_queue — Klasa

Klasa concurrent_queue to kontener sekwencyjny, który pozwala na dostęp do elementów według zasady: pierwsze przyszło, pierwsze wyszło.Umożliwia ograniczony zestaw bezpiecznych współbieżnych operacji, takich jak push i try_pop.

concurrent_unordered_map — Klasa

Klasa concurrent_unordered_map jest bezpiecznym pod kątem współbieżności kontenerem, który kontroluje różnej długości sekwencje elementów typu std::pair<const _Key_type, _Element_type>.Sekwencja jest reprezentowana w sposób umożliwiający bezpieczne pod względem współbieżności wykonanie operacji dołączenia, uzyskania dostępu do elementu, uzyskania dostępu do iteratora i przejścia przez iterator.

concurrent_unordered_multimap — Klasa

Klasa concurrent_unordered_multimap jest bezpiecznym pod kątem współbieżności kontenerem, który kontroluje różnej długości sekwencje elementów typu std::pair<const _Key_type, _Element_type>.Sekwencja jest reprezentowana w sposób umożliwiający bezpieczne pod względem współbieżności wykonanie operacji dołączenia, uzyskanie dostępu do elementu, uzyskanie dostępu do iteratora i przejście przez iterator.

concurrent_unordered_multiset — Klasa

Klasa concurrent_unordered_multiset jest bezpiecznym pod kątem współbieżności kontenerem, który kontroluje różnej długości sekwencje elementów typu _Key_type.Sekwencja jest reprezentowana w sposób umożliwiający bezpieczne pod względem współbieżności wykonanie operacji dołączenia, uzyskanie dostępu do elementu, uzyskanie dostępu do iteratora i przejście przez iterator.

concurrent_unordered_set — Klasa

Klasa concurrent_unordered_set jest bezpiecznym pod kątem współbieżności kontenerem, który kontroluje różnej długości sekwencje elementów typu _Key_type.Sekwencja jest reprezentowana w sposób umożliwiający bezpieczne pod względem współbieżności wykonanie operacji dołączenia, uzyskanie dostępu do elementu, uzyskanie dostępu do iteratora i przejście przez iterator.

concurrent_vector — Klasa

Klasa concurrent_vector jest sekwencyjnym kontenerem, który pozwala na losowy dostęp do dowolnego elementu.Umożliwia ona bezpieczne pod kątem współbieżności wykonanie operacji dołączenia, uzyskania dostępu do elementu, uzyskania dostępu do iteratora i przejście przez iterator.

Context — Klasa

Reprezentuje klasą abstrakcyjną dla kontekstu wykonywania.

context_self_unblock — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy metoda Unblock obiektu Context jest wywoływana z tego samego kontekstu.Oznaczało by to próbę odblokowania danego kontekstu przez siebie samego.

context_unblock_unbalanced — Klasa

Ta klasa opisuje wyjątek wyrzucany, gdy metody Block i Unblock obiektu Context nie są poprawnie skojarzone.

critical_section — Klasa

Mutex nie obsługujący współużytkowania, który zna jawnie środowisko uruchomieniowe współbieżności.

CurrentScheduler — Klasa

Reprezentuje abstrakcję dla bieżącego Harmonogramu zadań skojarzonego z kontekstem wywołującym.

default_scheduler_exists — Klasa

Ta klasa opisuje wyjątek wyrzucany, gdy metoda Scheduler::SetDefaultSchedulerPolicy jest wywoływana gdy istnieje już domyślny harmonogram zadań dla tego procesu.

event — Klasa

Zdarzenie resetowania ręcznego, które jest jawnie świadome współbieżności środowiska uruchomieniowego.

improper_lock — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy blokada jest zakładana w sposób niepoprawny.

improper_scheduler_attach — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy metoda Attach jest wywoływana na obiekcie Scheduler, który jest już dołączony do bieżącego kontekstu.

improper_scheduler_detach — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy metoda CurrentScheduler::Detach jest wywoływana w kontekście, który nie został dołączony do żadnego harmonogramu za pomocą metody Attach obiektu Scheduler.

improper_scheduler_reference — Klasa

Ta klasa opisuje wyjątek gdy metoda Reference jest wywoływana na obiekcie Scheduler, który jest zamykany, z kontekstu, który nie jest częścią tego harmonogramu.

invalid_link_target — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy metoda link_target bloku obsługi wiadomości jest wywoływana a blok obsługi wiadomości nie może połączyć się z obiektem docelowym.Może to być wynikiem przekroczenia limitu połączeń bloku obsługi wiadomości, lub gdy wykonywana jest próba połączenia określonego elementu docelowego dwukrotnie do tego samego elementu źródłowego.

invalid_multiple_scheduling — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy obiekt task_handle jest zaplanowany do wykonania wiele razy przy użyciu metody run obiektu task_group lub structured_task_group bez wywołania metody wait lub run_and_wait.

invalid_operation — Klasa

Ta klasa opisuje wyjątek generowany, gdy jest wykonywana nieprawidłowa operacja, która jest dokładniej opisana przez inny typ wyjątku generowanego przez środowisko uruchomieniowe współbieżności.

invalid_oversubscribe_operation — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy metoda Context::Oversubscribe wywoływana jest z parametrem _BeginOversubscription ustawionym na false bez uprzedniego wywołania metody Context::Oversubscribe z parametrem _BeginOversubscription ustawionym na true.

invalid_scheduler_policy_key — Klasa

Ta klasa opisuje wyjątek wyrzucany podczas gdy przekazywany jest nieprawidłowy lub nieznany klucz do konstruktora obiektu SchedulerPolicy lub metoda SetPolicyValue obiektu SchedulerPolicy przekazuje klucz, który musi zostać zmieniony za pomocą innych środków, takich jak metoda SetConcurrencyLimits.

invalid_scheduler_policy_thread_specification — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy próbuje się zmienić ograniczenia współbieżności obiektu SchedulerPolicy w taki sposób, że wartość klucza MinConcurrency jest mniejsza niż wartość klucza MaxConcurrency.

invalid_scheduler_policy_value — Klasa

Ta klasa opisuje wyjątek wyrzucany, gdy klucz zasad obiektu SchedulerPolicy ma nieprawidłową wartość dla tego klucza.

ISource — Klasa

Klasa ISource to interfejs dla wszystkich bloków źródłowych.Bloki źródłowe propagują wiadomości do bloków ITarget.

ITarget — Klasa

Klasa ITarget to interfejs dla wszystkich bloków docelowych.Bloki docelowe konsumują wiadomości dostarczane im przez bloki ISource.

join — Klasa

Blok wiadomości typu join jest pojedynczym elementem docelowym o wielu źródłach, uporządkowanym propagator_block który łączy ze sobą wiadomości typu _Type z każdego z jego źródeł.

location — Klasa

Abstrakcja fizycznej lokalizacji na sprzęcie.

message — Klasa

Podstawowa koperta wiadomości zawierająca ładunek danych przekazywany między blokami wiadomości.

message_not_found — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy blok wiadomości nie jest w stanie odnaleźć żądanej wiadomości.

message_processor — Klasa

Klasa message_processor to podstawowa abstrakcyjna klasa do przetwarzania obiektów message.Nie ma żadnej gwarancji uporządkowania wiadomości.

missing_wait — Klasa

Ta klasa opisuje wyjątek, wyrzucany gdy istnieją jeszcze zaplanowane zadania obiektu task_group lub structured_task_group w czasie, gdy wykonywany jest destruktor obiektu.Wyjątek ten nigdy nie zostanie wyrzucony gdy destruktor zostanie osiągnięty z powodu odwrócenia stosu jako wynik wyjątku.

multi_link_registry — Klasa

Obiekt multi_link_registry to network_link_registry, który zarządza wieloma blokami źródłowymi lub wieloma blokami docelowymi.

multitype_join — Klasa

Blok obsługi wiadomości multitype_join to blok o wielu źródłach i jednym elemencie docelowym, który łączy wiadomości wielu typów z każdego ze źródeł i zwraca krotkę połączonych wiadomości.

nested_scheduler_missing_detach — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy środowisko uruchomieniowe współbieżności wykryło, że zaniedbano wywołanie metody CurrentScheduler::Detach w kontekście dołączonego do drugiego harmonogramu zadań przy użyciu metody Attach obiektu Scheduler.

network_link_registry — Klasa

Abstrakcyjna klasa bazowa network_link_registry zarządza połączeniami pomiędzy blokami źródłowymi a docelowymi.

operation_timed_out — Klasa

Ta klasa opisuje wyjątek wyrzucany gdy upłynął limit czasu operacji.

ordered_message_processor — Klasa

Klasa ordered_message_processor to message_processor umożliwiający blokom obsługi wiadomości przetwarzanie wiadomości w kolejności w której zostały odebrane.

overwrite_buffer — Klasa

Blok obsługi wiadomości overwrite_buffer to blok o wielu elementach docelowych i źródłowych, uporządkowany propagator_block, który może przechowywać jedną wiadomość naraz.Nowe wiadomości zastępują poprzednio posiadane.

progress_reporter — Klasa

Klasa reportera postępu pozwala na zgłaszanie powiadomień o postępie określonego typu.Każdy obiekt progress_reporter jest powiązany z określoną akcją lub operacją asynchroniczną.

propagator_block — Klasa

Klasa propagator_block to abstrakcyjna klasa bazowa dla bloków wiadomości, które są zarówno elementami źródłowymi i docelowymi.Łączy w sobie funkcje klas source_block i target_block.

reader_writer_lock — Klasa

Blokada odczytu i zapisu, preferująca moduł zapisujący, oparta na kolejce, obracająca tylko lokalnie.Blokada przyznaje dostęp pierwszy przyszedł - pierwszy wyszedł (FIFO) do modułów zapisujących i blokuje moduły czytające ciągłym obciążeniem modułów zapisujących.

ScheduleGroup — Klasa

Reprezentuje klasą abstrakcyjną dla grupy harmonogramów.Harmonogram grup organizuje zestaw powiązanych prac, które mają korzyści z tego, że są czasowo zaplanowane blisko siebie, przez wykonywanie innego zadania w tej samej grupie przed przeniesieniem do innej grupy lub przestrzennie, wykonując wiele elementów w tej samej grupie na tym samym węźle NUMA lub fizycznym gnieździe.

Klasa harmonogramu

Reprezentuje abstrakcję dla harmonogramu środowiska uruchomieniowego współbieżności.

scheduler_not_attached — Klasa

Ta klasa opisuje wyjątek, wyrzucany, gdy operacja jest wykonywana i wymaga to od harmonogramu podłączenia do bieżącego kontekstu, a harmonogram nie jest do niego podłączony.

scheduler_resource_allocation_error — Klasa

Ta klasa opisuje wyjątek wyrzucany z powodu niepowodzenia uzyskania dostępu do krytycznego zasobu w środowisku uruchomieniowym współbieżności.

scheduler_worker_creation_error — Klasa

Ta klasa opisuje wyjątek wyrzucany z powodu niepowodzenia utworzenia roboczego kontekstu wykonania w środowisku uruchomieniowym współbieżności.

SchedulerPolicy — Klasa

SchedulerPolicy klasa zawiera zestaw pary klucz/wartość, jedną dla każdego elementu zasad, które kontrolują zachowanie wystąpienia harmonogramu.

simple_partitioner — Klasa

Klasa simple_partitioner reprezentuje statyczne partycjonowanie zakresu iterowanego przez parallel_for.Partycjoner dzieli zakres na kawałki, takie, że każdy kawałek ma co najmniej tyle iteracji, co wartość określona przez rozmiar kawałka.

single_assignment — Klasa

Blok obsługi wiadomości single_assignment to blok o wielu elementach docelowych i źródłowych, uporządkowany propagator_block który może przechowywać pojedynczą message jednokrotnego zapisu.

single_link_registry — Klasa

Obiekt single_link_registry to network_link_registry który zarządza tylko blokami z jednym elementem źródłowym lub docelowym.

source_block — Klasa

Klasa source_block to abstrakcyjna klasa bazowa dla bloków źródłowych.Klasa dostarcza podstawową funkcjonalność zarządzania połączeniem jak również sprawdzanie popularnych błędów.

source_link_manager — Klasa

Obiekt source_link_manager zarządza połączeniami sieciowymi bloków obsługi wiadomości do bloków ISource.

static_partitioner — Klasa

Klasa static_partitioner reprezentuje statyczne partycjonowanie zakresu iterowanego przez parallel_for.Partycjoner dzieli zakres na tak wiele kawałków ile jest dostępnych modułów roboczych w odpowiadającym harmonogramie.

structured_task_group — Klasa

Klasa structured_task_group reprezentuje wysoce uporządkowaną kolekcję równoległej pracy.Można kolejkować poszczególne zadania równoległe do structured_task_group za pomocą obiektów task_handle i poczekać do ukończenia lub anulować grupę zadań przed zakończeniem jej wykonywania, co spowoduje przerwanie wszystkich zadań, które się jeszcze nie rozpoczęły.

target_block — Klasa

Klasa target_block to abstrakcyjna klasa bazowa, która zapewnia podstawową funkcjonalność zarządzania łączem i sprawdzenia błędów tylko dla bloków docelowych.

task — Klasa (współbieżność środowiska wykonawczego)

Klasa task biblioteki równoległych wzorców (PPL, Parallel Patterns Library).Obiekt task reprezentuje pracę, która może być wykonywana asynchronicznie, i równocześnie z innymi zadaniami i pracami równoległymi produkowanymi przez algorytmy równoległe we współbieżnym środowisku wykonawczym.Daje wynik o typie _ResultType po pomyślnym zakończeniu.Zadania typu task<void> nie generują żadnego wyniku.Zadanie można wstrzymywać i anulować niezależnie od innych zadań.To może również składać się z innych zadań za pomocą kontynuacji (then) i sprzężenia (when_all) i wyboru (when_any) szablonów.

task_canceled — Klasa

Ta klasa opisuje wyjątek generowany przez warstwę zadań PPL, aby wymusić anulowanie bieżącego zadania.Jest to również generowane przez get() metody zadanie, dla anulowanych zadań.

task_completion_event — Klasa

Klasa task_completion_event umożliwia opóźnienie wykonania zadania, dopóki nie zostanie spełniony jakiś warunek, lub uruchomienie zadania w odpowiedzi na zdarzenie zewnętrzne.

task_continuation_context — Klasa

Klasa task_continuation_context umożliwia określenie, gdzie ma zostać wykonana kontynuacja.Użyteczne jest tylko używanie tej klasy z aplikacji do Sklepu Windows.Dla aplikacji spoza Sklepu Windows kontekst wykonywania kontynuacji zadania jest ustalony w czasie wykonywania i nie można go konfigurować.

task_group — Klasa

Klasa task_group reprezentuje kolekcję równoległej pracy, na którą można czekać, aż się wykona lub anulować.

task_handle — Klasa

Klasa task_handle reprezentuje pojedynczy równoległy element roboczy.Hermetyzuje on instrukcje i dane wymagane do wykonania danej pracy.

Klasa task_options (współbieżność środowiska wykonawczego)

Reprezentuje dozwolone opcje tworzenia zadania

timer — Klasa

Blok obsługi wiadomości timer to blok o jednym elemencie docelowym source_block zdolnym do wysyłania wiadomości do swojego elementu docelowego po określonym czasie lub w określonych odstępach czasu.

transformer — Klasa

Blok obsługi wiadomości transformer to blok obsługi wiadomości o jednym elemencie źródłowym i wielu elementach docelowych, uporządkowany propagator_block, który może akceptować wiadomości jednego typu i jest zdolny do przechowywania nieograniczonej liczby wiadomości różnych typów.

unbounded_buffer — Klasa

Blok obsługi wiadomości unbounded_buffer to blok obsługi wiadomości o wielu elementach docelowych i źródłowych, uporządkowany propagator_block, który może przechowywać nieograniczonej liczby wiadomości.

unsupported_os — Klasa

Ta klasa zawiera opis wyrzucanego wyjątku, gdy jest używany nieobsługiwany system operacyjny.

Struktury

Nazwa

Opis

DispatchState — Struktura

Struktura DispatchState jest używana do przenoszenia stanu do metody IExecutionContext::Dispatch.Opisuje okoliczności, w jakich metoda Dispatch jest wywoływana na interfejsie IExecutionContext.

IExecutionContext — Struktura

Interfejs kontekstu wykonania, który może być uruchamiany na podanym procesorze wirtualnym i być zmieniany jednocześnie z innym kontekstem.

IExecutionResource — Struktura

Abstrakcja sprzętu wątku.

IResourceManager — Struktura

Interfejs do Menedżera zasobów środowiska uruchomieniowego współbieżności.Jest to interfejs, za pomocą którego harmonogramy komunikują się z Menedżerem zasobów.

Struktura IScheduler

Interfejs do abstrakcji harmonogramu pracy.Menedżer zasobów środowiska uruchomieniowego współbieżności używa tego interfejsu do komunikowania się z harmonogramem pracy.

ISchedulerProxy — Struktura

Interfejs, za pomocą którego harmonogramy komunikują się z Menedżerem zasobów środowiska uruchomieniowego współbieżności do negocjowania alokacji zasobów.

IThreadProxy — Struktura

Abstrakcja dla wątku wykonywania.W zależności od klucza zasad SchedulerType utworzonego harmonogramu, Menedżer zasobów przyzna proxy wątku, które jest wspierane przez normalny wątek Win32 lub możliwy do użycia w harmonogramie wątek w trybie użytkownika (UMS).Wątki UMS są obsługiwane w 64-bitowych systemach operacyjnych z wersją systemu Windows 7 lub nowszą.

ITopologyExecutionResource — Struktura

Interfejs do zasobu wykonania określonego przez Menedżera zasobów.

ITopologyNode — Struktura

Interfejs do węzła topologii, określonego przez Menedżera zasobów.Węzeł zawiera jeden lub więcej zasobów wykonania.

IUMSCompletionList — Struktura

Reprezentuje listę ukończenia UMS.Gdy wątek UMS jest zablokowany, kontekst harmonogramu, wybrany przez harmonogram jest delegowany do podjęcia decyzji co należy zaplanować w odpowiadającym katalogu głównym procesora wirtualnego, podczas gdy oryginalny wątek jest zablokowany.Gdy oryginalny wątek odblokuje się, system operacyjny kolejkuje go do listy ukończenia, która jest dostępna przez ten interfejs.Harmonogram może odpytać listę ukończenia na wybranym kontekście harmonogramu lub w dowolnym innym miejscu w którym szuka pracy.

Struktura IUMSScheduler

Interfejs do abstrakcji harmonogramu pracy, który chce by Menedżer zasobów środowiska uruchomieniowego aplikacji doręczył wątki UMS.Menedżer zasobów używa tego interfejsu do komunikowania się z harmonogramami wątków UMS.Interfejs IUMSScheduler dziedziczy z interfejsu IScheduler.

IUMSThreadProxy — Struktura

Abstrakcja dla wątku wykonywania.Jeśli chcesz, aby Twój harmonogram miał przyznane wątki UMS, ustaw wartość elementu zasad harmonogramu SchedulerKind na UmsThreadDefaulti zaimplementuj interfejs IUMSScheduler.Wątki UMS są obsługiwane tylko w 64-bitowych systemach operacyjnych z wersją systemu Windows 7 lub nowszą.

IUMSUnblockNotification — Struktura

Reprezentuje powiadomienia Menedżera zasobów, że proxy wątku zostało zablokowane i została odblokowana możliwość powrotu do wyznaczonego kontekstu harmonogramu, który jest gotowy do zaplanowania.Ten interfejs jest nieprawidłowy, gdy proxy wątku powiązane z kontekstem wykonania, zwrócone z metody GetContext zostaje ponownie zaplanowane.

IVirtualProcessorRoot — Struktura

Abstrakcja dla wątku sprzętu, na którym proxy wątku może się wykonać.

scheduler_interface — Struktura

Interfejs harmonogramu

Struktura scheduler_ptr (współbieżność środowiska wykonawczego)

Reprezentuje wskaźnik do harmonogramu.Ta klasa istnieje, aby zezwalać na specyfikację wspólnego okresu istnienia przy użyciu wskaźnika shared_ptr lub zwykłe odwołanie za pomocą wskaźnika raw.

Wyliczenia

Nazwa

Opis

agent_status — Wyliczenie

Prawidłowe stany agent.

Agents_EventType — Wyliczenie

Typy zdarzeń, które mogą być śledzone za pomocą funkcji śledzenia oferowanych przez biblioteki agentów

ConcRT_EventType — Wyliczenie

Typy zdarzeń, które mogą być śledzone za pomocą funkcji śledzenia oferowanych przez środowisko uruchomieniowe współbieżności.

Concrt_TraceFlags — Wyliczenie

Flagi śledzenia typów zdarzeń

CriticalRegionType — Wyliczenie

Typ krytycznego regionu w którym znajduje się kontekst.

DynamicProgressFeedbackType — Wyliczenie

Używane przez zasady DynamicProgressFeedback w celu opisania, czy zasoby dla harmonogramu zostaną zrównoważone według informacji statystycznych zebranych z harmonogramu, czy tylko na podstawie procesorów wirtualnych wchodzących i wychodzących ze stanu bezczynności przez wywołania metody Activate i Deactivate interfejsu IVirtualProcessorRoot.Aby uzyskać więcej informacji na temat dostępnych polityk harmonogramu, zobacz PolicyElementKey — Wyliczenie.

join_type — Wyliczenie

Typ bloku obsługi wiadomości join.

message_status — Wyliczenie

Prawidłowe odpowiedzi na ofertę obiektu message do bloku.

PolicyElementKey — Wyliczenie

Klucze zasad opisują aspekty zachowania harmonogramu.Każdy element zasad jest opisany przez parę klucz wartość.Aby uzyskać więcej informacji dotyczących zasad harmonogramu i ich wpływu na harmonogram, zobacz Harmonogram zadań (współbieżność środowiska wykonawczego).

SchedulerType — Wyliczenie

Używane przez zasady SchedulerKind w celu opisania typów wątków, które harmonogram powinien wykorzystać dla odpowiedniego kontekstu wykonania.Aby uzyskać więcej informacji na temat dostępnych polityk harmonogramu, zobacz PolicyElementKey — Wyliczenie.

SchedulingProtocolType — Wyliczenie

Używane przez zasady SchedulingProtocol w celu opisania który algorytm planowania będzie wykorzystany przez harmonogram.Aby uzyskać więcej informacji na temat dostępnych polityk harmonogramu, zobacz PolicyElementKey — Wyliczenie.

SwitchingProxyState — Wyliczenie

Wykorzystywany w celu określenia stanu, w jakim jest proxy wątku, kiedy jest wykonywane jednoczesne przełączanie kontekstu na inny wątek proxy.

task_group_status — Wyliczenie

Opisuje stan wykonania obiektu task_group lub structured_task_group.Wiele metod czekających na zakończenie zadań zaplanowanych do grupy zadań, zwraca wartość tego typu.

WinRTInitializationType — Wyliczenie

Używane przez WinRTInitialization zasady do opisywania, czy i w jaki sposób Środowisko wykonawcze systemu Windows będzie zainicjowane na wątki harmonogram dla aplikacji, która jest uruchamiana w systemach operacyjnych z wersją systemu Windows 8 lub nowszą.Aby uzyskać więcej informacji na temat dostępnych polityk harmonogramu, zobacz PolicyElementKey — Wyliczenie.

Funkcje

Nazwa

Opis

Alloc — Funkcja

Przydziela blok pamięci o rozmiarze określonym przez Concurrency Runtime Caching Suballocator.

asend — Funkcja

Przeciążone.Operacja asynchronicznego wysyłania, która planuje zadania do propagowania danych do bloku docelowego.

cancel_current_task — Funkcja

Anuluje aktualnie przeprowadzane zadanie.Ta funkcja może zostać wywołana z treści zadania, aby przerwać jego wykonywanie i spowodować wprowadzenie stanu canceled.Chociaż może być używane w odpowiedzi na funkcję is_task_cancellation_requested funkcji, można go także użyć niezależnie, aby zainicjować anulowanie zadania, które jest w trakcie wykonywania.

Nie jest to obsługiwany scenariusz, aby wywołać tę funkcję, jeśli nie jesteś w treści task.To spowoduje nieokreślone zachowanie, na przykład awarię lub zawieszenie aplikacji.

create_async — Funkcja

Tworzy konstrukcję asynchroniczną środowiska wykonawczego systemu Windows w oparciu o dostarczony przez użytkownika obiekt lambda lub obiekt funkcyjny.Zwracanym typem metody create_async jest IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^ lub IAsyncOperationWithProgress<TResult, TProgress>^, zależnie od podpisu wyrażenia lambda przekazanego do metody.

create_task — Funkcja

Przeciążone.Tworzy obiekt PPL zadania.create_task może być używany wszędzie, gdzie użyto konstruktora zadania.To jest przewidziane przede wszystkim dla wygody, ponieważ umożliwia korzystanie ze słowa kluczowego auto podczas tworzenia zadań.

CreateResourceManager — Funkcja

Zwraca interfejs, który reprezentuje wystąpienie singleton Menedżera zasobów Runtime współbieżności.Menedżer zasobów jest odpowiedzialny za przydzielanie zasobów pracownikom, co do których chcesz, żeby współpracowali.

DisableTracing — Funkcja

Wyłącza śledzenie w środowisku uruchomieniowym współbieżności.Ta funkcja jest przestarzała, ponieważ śledzenie ETW nie jest rejestrowane domyślnie.

EnableTracing — Funkcja

Włącza śledzenie w środowisku uruchomieniowym współbieżności.Ta funkcja jest przestarzała, ponieważ śledzenie ETW jest teraz rejestrowane domyślnie.

Free — Funkcja

Zwalnia blok pamięci uprzednio przydzielony przez Alloc metodę Suballocator buforowania w czasie wykonywania współbieżności.

get_ambient_scheduler — Funkcja (współbieżność środowiska wykonawczego)

GetExecutionContextId — Funkcja

Zwraca unikatowy identyfikator, który może być przypisany do kontekstu wykonania, który implementuje interfejs IExecutionContext.

GetOSVersion — Funkcja

Zwraca wersję systemu operacyjnego.

GetProcessorCount — Funkcja

Zwraca liczbę wątków sprzętu w systemie podstawowym.

GetProcessorNodeCount — Funkcja

Zwraca liczbę węzłów NUMA lub pakietów procesora w systemie podstawowym.

GetSchedulerId — Funkcja

Zwraca unikatowy identyfikator, który może być przypisany do harmonogramu, który implementuje interfejs IScheduler.

interruption_point — Funkcja

Tworzy punkt przerwania do anulowania.Gdy anulowanie jest w toku, w kontekście z którego funkcja została wywołana, zostanie wyrzucony wewnętrzny wyjątek, który przerywa wykonywanie aktualnie wykonywanej pracy równoległej.Jeśli anulowanie nie jest w toku, funkcja nie robi nic.

is_current_task_group_canceling — Funkcja

Zwraca wskazanie czy grupa zadań, która jest aktualnie wykonywana wewnątrz bieżącego kontekstu jest w trakcie aktywnego anulowania (lub znajdzie się w nim wkrótce).Należy zauważyć, że jeśli nie ma żadnej grupy zadań aktualnie wykonywanych wewnątrz bieżącego kontekstu, zostanie zwrócona wartość false.

is_task_cancellation_requested — Funkcja

Zwraca wskazanie, czy zadanie, które jest aktualnie wykonywane, odebrało żądanie anulowania jego wykonania.Anulowanie jest wymagane w przypadku zadania, jeśli zadanie zostało utworzone z tokenem anulowania a źródło tokenu skojarzone z tym tokenem zostało anulowane.

make_choice — Funkcja

Przeciążone.Tworzy blok obsługi wiadomości choice z opcjonalnego Scheduler lub ScheduleGroup i dwóch lub więcej źródeł danych wejściowych.

make_greedy_join — Funkcja

Przeciążone.Tworzy blok obsługi wiadomości greedy multitype_join z opcjonalnego Scheduler lub ScheduleGroup i dwóch lub więcej źródeł danych wejściowych.

make_join — Funkcja

Przeciążone.Tworzy blok obsługi wiadomości non_greedy multitype_join z opcjonalnego Scheduler lub ScheduleGroup i dwóch lub więcej źródeł danych wejściowych.

make_task — Funkcja

Metoda do tworzenia obiektu task_handle.

parallel_buffered_sort — Funkcja

Przeciążone.Rozmieszcza elementy znajdujące się w określonym zakresie, w niemalejącej kolejności, lub według kryteriów sortowania określonych przez binarny predykat, równolegle.Ta funkcja jest semantycznie podobna do std::sort, ponieważ jest oparta na sortowaniu, niestabilna, sortuje z miejsca, z tym wyjątkiem, że potrzebuje O(n) dodatkowego miejsca i wymaga domyślnego inicjowania sortowanych elementów.

parallel_for — Funkcja

Przeciążone.parallel_for wykonuje iterację na zakresie indeksów i wykonuje funkcję dostarczoną przez użytkownika, w każdej iteracji, równolegle.

parallel_for_each — Funkcja

Przeciążone.parallel_for_each wykonuje określoną funkcję, na każdym elemencie z zakresu, równolegle.Jest semantycznie równoważna z funkcją for_each z przestrzeni nazw std z tym, że iteracja po elementach jest wykonywana równolegle, a kolejność iteracji jest nieokreślona.Argument _Func musi obsługiwać operator wywołania funkcji w postaci operator()(T) gdzie parametr T jest typem elementów kontenera, przez który następuje iteracja.

parallel_invoke — Funkcja

Przeciążone.Wykonuje obiekty funkcji dostarczone jako parametry, równolegle, i blokuje je aż do zakończenia ich wykonywania.Każdy obiekt funkcji może być wyrażeniem lambda, wskaźnikiem na funkcję, lub dowolny obiekt, który obsługuje operator wywołania funkcji z podpisem void operator()().

parallel_radixsort — Funkcja

Przeciążone.Rozmieszcza elementy znajdujące się w określonym zakresie, w niemalejącej kolejności używając algorytmu sortowania pozycyjnego.Jest to stabilna funkcja sortowania, która wymaga funkcji projekcji, która potrafi projektować elementy w taki sposób, że będą sortowane podobnie jak liczby całkowitej bez znaku.Wymagane jest domyślne zainicjowanie sortowanych elementów.

parallel_reduce — Funkcja

Przeciążone.Oblicza sumę wszystkich elementów w określonym przedziale przez obliczenie sumy kolejnych sum częściowych, lub oblicza wynik kolejnych wyników częściowych pobranych podobnie przy użyciu podanej operacji binarnej innej niż suma, równolegle.parallel_reduce jest semantycznie podobna do std::accumulate, z tym wyjątkiem, że wymaga od operacji binarnych by były zespolone i wymaga wartości tożsamości zamiast wartości początkowej.

parallel_sort — Funkcja

Przeciążone.Rozmieszcza elementy znajdujące się w określonym zakresie, w niemalejącej kolejności, lub według kryteriów sortowania określonych przez binarny predykat, równolegle.Ta funkcja jest semantycznie podobna do std::sort, ponieważ jest oparta na sortowaniu, niestabilna i sortuje w miejscu.

parallel_transform — Funkcja

Przeciążone.Wykonuje podany obiekt funkcyjny na każdym elemencie w zakresie sortowania, lub na parze elementów z dwóch zakresów sortowania, i kopiuje zwracaną wartość obiektu funkcyjnego do zakresu docelowego, równolegle.Ta funkcjonalność jest semantycznie równoważna z std::transform.

receive — Funkcja

Przeciążone.Ogólna implementacja otrzymania, pozwalająca kontekstowi na poczekanie na dane z dokładnie jednego źródła i przefiltrowanie akceptowanych wartości.

run_with_cancellation_token — Funkcja

Wykonuje obiekt funkcji natychmiast i synchronicznie w kontekście danego tokenu anulacji.

send — Funkcja

Przeciążone.Synchroniczna operacja wysyłania, która czeka aż element docelowy albo zaakceptuje, albo odrzuci wiadomość.

set_ambient_scheduler — Funkcja (współbieżność środowiska wykonawczego)

set_task_execution_resources — Funkcja

Przeciążone.Ogranicza zasoby wykonania używane przez wewnętrzne wątki robocze środowiska uruchomieniowego współbieżności do określonego zbioru koligacji.

Tę metodę można wywołać tylko przed utworzeniem Menedżera zasobów lub między okresami istnienia dwóch Menedżerów Zasobów.Może zostać wywołana wiele razy, tak długo, jak Menedżer zasobów nie istnieje w chwili wywołania.Po ustawieniu limitu koligacji, pozostaje on w mocy aż do następnego prawidłowego wywołania metody set_task_execution_resources.

Podana maska koligacji nie musi być podzbiorem maski koligacji procesu.Koligacja procesów zostanie zaktualizowana, jeśli to konieczne.

swap — Funkcja

Wymienia elementy dwóch obiektów concurrent_vector.

task_from_exception — Funkcja (współbieżność środowiska wykonawczego)

task_from_result — Funkcja (współbieżność środowiska wykonawczego)

Trace_agents_register_name — Funkcja

Przypisuje podaną nazwę do bloku wiadomości lub agenta w wynikach śledzenia ETW.

try_receive — Funkcja

Przeciążone.Ogólna implementacja "spróbuj otrzymać", pozwalająca kontekstowi na poszukanie danych z dokładnie jednego źródła i przefiltrowanie akceptowanych wartości.Jeśli dane nie są gotowe, metoda zwróci wartość false.

wait — Funkcja

Wstrzymuje działanie bieżącego kontekstu na określoną ilość czasu.

when_all — Funkcja

Tworzy zadanie, które zostanie ukończone pomyślnie, gdy wszystkie zadania dostarczone jako argumenty zakończą się pomyślnie.

when_any — Funkcja

Przeciążone.Tworzy zadanie, które zostanie ukończone pomyślnie, gdy dowolne zadania dostarczone jako argumenty zakończą się pomyślnie.

Operatory

Nazwa

Opis

operator!= — Operator

Bada, czy obiekt concurrent_vector po lewej stronie operatora nie równa się obiektowi concurrent_vector po prawej stronie.

operator&& — Operator

Przeciążone.Tworzy zadanie, które zostanie ukończone pomyślnie, gdy oba zadania dostarczone jako argumenty zakończą się pomyślnie.

operator|| — Operator

Przeciążone.Tworzy zadanie, które zostanie ukończone pomyślnie, gdy dowolne zadania dostarczone jako argumenty zakończą się pomyślnie.

operator< — Operator

Bada, czy obiekt concurrent_vector po lewej stronie operatora jest mniejszy niż obiekt concurrent_vector po prawej stronie.

operator<= — Operator

Bada, czy obiekt concurrent_vector po lewej stronie operatora jest mniejszy bądź równy niż obiekt concurrent_vector po prawej stronie.

operator== — Operator

Bada, czy obiekt concurrent_vector po lewej stronie operatora równa się obiektowi concurrent_vector po prawej stronie.

operator> — Operator

Bada, czy obiekt concurrent_vector po lewej stronie operatora jest większy niż obiekt concurrent_vector po prawej stronie.

operator>= — Operator

Bada, czy obiekt concurrent_vector po lewej stronie operatora jest większy bądź równy niż obiekt concurrent_vector po prawej stronie.

Stałe

Nazwa

Opis

AgentEventGuid — Stała

Identyfikator GUID kategorii ({B9B5B78C-0713-4898-A21A-C67949DCED07}) opisujący zdarzenia ETW uruchamiane przez biblioteki agentów w środowisku uruchomieniowym współbieżności.

ChoreEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane z zadaniami.

ConcRT_ProviderGuid — Stała

Identyfikator GUID dostawcy ETW dla środowiska uruchomieniowego współbieżności.

CONCRT_RM_VERSION_1 — Stała

Wskazuje poziom pomocy interfejsu Menedżera zasobów, zdefiniowanym w Visual Studio 2010.

ConcRTEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bardziej szczegółowo opisane przez inną kategorię.

ContextEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane z kontekstami.

COOPERATIVE_TIMEOUT_INFINITE — Stała

Wartość wskazująca, że oczekiwania nigdy nie powinny wygasać.

COOPERATIVE_WAIT_TIMEOUT — Stała

Wartość wskazująca, że minął czas oczekiwania.

INHERIT_THREAD_PRIORITY — Stała

Specjalna wartość dla klucza zasad ContextPriority wskazująca, że priorytet wątku ze wszystkich kontekstów w harmonogramie powinien być taka sama, jak w przypadku wątku, który utworzył harmonogram.

LockEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane z blokadami.

MaxExecutionResources — Stała

Specjalna wartość dla kluczy zasad MinConcurrency i MaxConcurrency.Domyślna liczba sprzętowych wątków na komputerze, gdy brak innych ograniczeń.

PPLParallelForeachEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane z użyciem funkcji parallel_for_each.

PPLParallelForEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane z użyciem funkcji parallel_for.

PPLParallelInvokeEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane z użyciem funkcji parallel_invoke.

ResourceManagerEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane z menadżerem zasobów.

ScheduleGroupEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane z grupami planowania.

SchedulerEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane z aktywnością harmonogramu.

VirtualProcessorEventGuid — Stała

Identyfikator GUID kategorii opisujący zdarzenia ETW uruchamiane przez środowisko uruchomieniowe współbieżności, które są bezpośrednio powiązane procesorami wirtualnymi.

Wymagania

Nagłówek: agents.h, concrt.h, concrtrm.h, concurrent_priority_queue.h, concurrent_queue.h, concurrent_unordered_map.h, concurrent_unordered_set.h, concurrent_vector.h, internal_concurrent_hash.h, internal_split_ordered_list.h, ppl.h, pplcancellation_token.h, pplconcrt.h, pplinterface.h, ppltasks.h

Zobacz też

Inne zasoby

Odwołanie (Współbieżność środowiska wykonawczego)