Wyliczenia przestrzeni nazw współbieżności
agent_status Wyliczenie
Prawidłowe stany dla elementu agent
.
enum agent_status;
Wartości
Nazwa/nazwisko | opis |
---|---|
agent_canceled |
Element agent został anulowany. |
agent_created |
Element agent został utworzony, ale nie został uruchomiony. |
agent_done |
Zakończenie agent bez anulowania. |
agent_runnable |
Element agent został uruchomiony, ale nie został wprowadzony w jego run metodę. |
agent_started |
Zaczęło agent się. |
Uwagi
Aby uzyskać więcej informacji, zobacz Asynchroniczne agenty.
Wymagania
Nagłówek: concrt.h
wyliczenie Agents_EventType
Typy zdarzeń, które można śledzić przy użyciu funkcji śledzenia oferowanych przez bibliotekę agentów
enum Agents_EventType;
Wartości
Nazwa/nazwisko | opis |
---|---|
AGENTS_EVENT_CREATE |
Typ zdarzenia reprezentujący tworzenie obiektu |
AGENTS_EVENT_DESTROY |
Typ zdarzenia, który reprezentuje usunięcie obiektu |
AGENTS_EVENT_END |
Typ zdarzenia, który reprezentuje zakończenie niektórych przetwarzania |
AGENTS_EVENT_LINK |
Typ zdarzenia reprezentujący łączenie bloków komunikatów |
AGENTS_EVENT_NAME |
Typ zdarzenia reprezentujący nazwę obiektu |
AGENTS_EVENT_SCHEDULE |
Typ zdarzenia reprezentujący planowanie procesu |
AGENTS_EVENT_START |
Typ zdarzenia, który reprezentuje inicjację niektórych procesów przetwarzania |
AGENTS_EVENT_UNLINK |
Typ zdarzenia, który reprezentuje odłączanie bloków komunikatów |
Wymagania
Nagłówek: concrt.h
ConcRT_EventType Wyliczenie
Typy zdarzeń, które można śledzić przy użyciu funkcji śledzenia oferowanych przez środowisko uruchomieniowe współbieżności.
enum ConcRT_EventType;
Wartości
Nazwa/nazwisko | opis |
---|---|
CONCRT_EVENT_ATTACH |
Typ zdarzenia, który reprezentuje czynność dołączania do harmonogramu. |
CONCRT_EVENT_BLOCK |
Typ zdarzenia, który reprezentuje akcję blokowania kontekstu. |
CONCRT_EVENT_DETACH |
Typ zdarzenia, który reprezentuje czynność odłączenia od harmonogramu. |
CONCRT_EVENT_END |
Typ zdarzenia, który oznacza początek pary zdarzeń początkowych/końcowych. |
CONCRT_EVENT_GENERIC |
Typ zdarzenia używany dla różnych zdarzeń. |
CONCRT_EVENT_IDLE |
Typ zdarzenia, który reprezentuje akt kontekstu staje się bezczynny. |
CONCRT_EVENT_START |
Typ zdarzenia, który oznacza początek pary zdarzeń początkowych/końcowych. |
CONCRT_EVENT_UNBLOCK |
Typ zdarzenia, który reprezentuje czynność odblokowania kontekstu. |
CONCRT_EVENT_YIELD |
Typ zdarzenia, który reprezentuje akt zwracania kontekstu. |
Wymagania
Nagłówek: concrt.h Przestrzeń nazw: współbieżność
wyliczenie Concrt_TraceFlags
Flagi śledzenia typów zdarzeń
enum Concrt_TraceFlags;
Wartości
Nazwa/nazwisko | opis |
---|---|
AgentEventFlag |
|
AllEventsFlag |
|
ContextEventFlag |
|
PPLEventFlag |
|
ResourceManagerEventFlag |
|
SchedulerEventFlag |
|
VirtualProcessorEventFlag |
Wymagania
Nagłówek: concrt.h
CriticalRegionType, wyliczenie
Typ regionu krytycznego, w którym znajduje się kontekst.
enum CriticalRegionType;
Wartości
Nazwa/nazwisko | opis |
---|---|
InsideCriticalRegion |
Wskazuje, że kontekst znajduje się wewnątrz regionu krytycznego. W regionie krytycznym zawieszenia asynchroniczne są ukryte przed harmonogramem. Jeśli takie zawieszenie się stanie, usługa Resource Manager będzie czekać na uruchomienie wątku i po prostu wznowić go zamiast wywołać harmonogram ponownie. Wszelkie blokady podjęte w takim regionie muszą być wykonane ze skrajną ostrożnością. |
InsideHyperCriticalRegion |
Wskazuje, że kontekst znajduje się wewnątrz regionu hiperkrytycznego. W regionie hiperkrytycznym zarówno synchroniczne, jak i asynchroniczne zawieszenia są ukryte przed harmonogramem. Jeśli takie zawieszenie lub blokowanie nastąpi, menedżer zasobów będzie czekać na uruchomienie wątku i po prostu wznowić go zamiast wywołać harmonogram ponownie. Blokady pobrane w takim regionie nigdy nie muszą być udostępniane kodowi działającego poza takim regionem. Spowoduje to nieprzewidywalne zakleszczenie. |
OutsideCriticalRegion |
Wskazuje, że kontekst znajduje się poza dowolnym regionem krytycznym. |
Wymagania
Nagłówek: concrtrm.h
DynamicProgressFeedbackType, wyliczenie
Używane przez DynamicProgressFeedback
zasady do opisania, czy zasoby harmonogramu zostaną ponownie zrównoważone zgodnie z informacjami statystycznymi zebranymi z harmonogramu, czy tylko na podstawie procesorów wirtualnych przechodzących do stanu bezczynności i wychodzących przez wywołania Activate
metod i Deactivate
w interfejsie IVirtualProcessorRoot
. Aby uzyskać więcej informacji na temat dostępnych zasad harmonogramu, zobacz PolicyElementKey.
enum DynamicProgressFeedbackType;
Wartości
Nazwa/nazwisko | opis |
---|---|
ProgressFeedbackDisabled |
Harmonogram nie zbiera informacji o postępie. Ponowne równoważenie odbywa się wyłącznie na poziomie subskrypcji bazowego wątku sprzętowego. Aby uzyskać więcej informacji na temat poziomów subskrypcji, zobacz IExecutionResource::CurrentSubscriptionLevel. Ta wartość jest zarezerwowana do użytku przez środowisko uruchomieniowe. |
ProgressFeedbackEnabled |
Harmonogram zbiera informacje o postępie i przekazuje je do menedżera zasobów. Menedżer zasobów wykorzysta te informacje statystyczne do ponownego równoważenia zasobów w imieniu harmonogramu oprócz poziomu subskrypcji bazowego wątku sprzętowego. Aby uzyskać więcej informacji na temat poziomów subskrypcji, zobacz IExecutionResource::CurrentSubscriptionLevel. |
Wyliczenie join_type
Typ bloku obsługi komunikatów join
.
enum join_type;
Wartości
Nazwa/nazwisko | opis |
---|---|
greedy |
Chciwe join bloki obsługi komunikatów natychmiast akceptują wiadomość po propagacji. Jest to bardziej wydajne, ale ma możliwość blokowania na żywo w zależności od konfiguracji sieci. |
non_greedy |
Wiadomości niechłanne join blokują odroczenie wiadomości i spróbuj je wykorzystywać po ich przybyciu. Są one gwarantowane do pracy, ale wolniejsze. |
Wymagania
Nagłówek: agents.h
wyliczenie message_status
Prawidłowe odpowiedzi dla oferty message
obiektu do bloku.
enum message_status;
Wartości
Nazwa/nazwisko | opis |
---|---|
accepted |
Element docelowy zaakceptował komunikat. |
declined |
Element docelowy nie zaakceptował wiadomości. |
missed |
Obiekt docelowy próbował zaakceptować wiadomość, ale nie był już dostępny. |
postponed |
Element docelowy odroczył komunikat. |
Wymagania
Nagłówek: agents.h
PolicyElementKey, wyliczenie
Klucze zasad opisujące aspekty zachowania harmonogramu. Każdy element zasad jest opisany przez parę klucz-wartość. Aby uzyskać więcej informacji na temat zasad harmonogramu i ich wpływu na harmonogramy, zobacz Harmonogram zadań.
enum PolicyElementKey;
Wartości
Nazwa/nazwisko | opis |
---|---|
ContextPriority |
Priorytet wątku systemu operacyjnego każdego kontekstu w harmonogramie. Jeśli ten klucz jest ustawiony na wartość INHERIT_THREAD_PRIORITY , konteksty w harmonogramie będą dziedziczyć priorytet wątku, który utworzył harmonogram.Prawidłowe wartości: dowolna z prawidłowych wartości funkcji systemu Windows SetThreadPriority i wartość specjalna INHERIT_THREAD_PRIORITY Wartość domyślna: THREAD_PRIORITY_NORMAL |
ContextStackSize |
Zarezerwowany rozmiar stosu każdego kontekstu w harmonogramie w kilobajtach. Prawidłowe wartości: dodatnie liczby całkowite Wartość domyślna: 0 , wskazująca, że używana jest domyślna wartość procesu dla rozmiaru stosu. |
DynamicProgressFeedback |
Określa, czy zasoby harmonogramu zostaną ponownie zrównoważone zgodnie z informacjami statystycznymi zebranymi z harmonogramu, czy tylko na podstawie poziomu subskrypcji podstawowych wątków sprzętowych. Aby uzyskać więcej informacji, zobacz DynamicProgressFeedbackType. Prawidłowe wartości: element członkowski DynamicProgressFeedbackType wyliczenia lub ProgressFeedbackEnabled ProgressFeedbackDisabled Wartość domyślna: ProgressFeedbackEnabled |
LocalContextCacheSize |
SchedulingProtocol Gdy klucz zasad jest ustawiony na wartość EnhanceScheduleGroupLocality , określa maksymalną liczbę kontekstów możliwych do uruchomienia, które mogą być buforowane w kolejkach lokalnych procesora wirtualnego. Takie konteksty będą zwykle uruchamiane w kolejności ostatniego wyjścia (LIFO) na procesorze wirtualnym, który spowodował ich uruchomienie. Należy pamiętać, że ten klucz zasad nie ma znaczenia, gdy SchedulingProtocol klucz jest ustawiony na wartość EnhanceForwardProgress .Prawidłowe wartości: liczby całkowite nieujemne Wartość domyślna: 8 |
MaxConcurrency |
Maksymalny poziom współbieżności żądany przez harmonogram. Menedżer zasobów spróbuje początkowo przydzielić ten wiele procesorów wirtualnych. Wartość specjalna MaxExecutionResources wskazuje, że żądany poziom współbieżności jest taki sam jak liczba wątków sprzętowych na maszynie. Jeśli określona MinConcurrency wartość parametru jest większa niż liczba wątków sprzętowych na maszynie i MaxConcurrency jest określona jako MaxExecutionResources wartość , wartość parametru MaxConcurrency zostanie podniesiona w celu dopasowania do wartości ustawionej dla MinConcurrency elementu .Prawidłowe wartości: dodatnie liczby całkowite i wartość specjalna MaxExecutionResources Wartość domyślna: MaxExecutionResources |
MaxPolicyElementKey |
Maksymalny klucz elementu zasad. Nieprawidłowy klucz elementu. |
MinConcurrency |
Minimalny poziom współbieżności, który musi zostać udostępniony harmonogramowi przez menedżera zasobów. Liczba procesorów wirtualnych przypisanych do harmonogramu nigdy nie będzie mniejsza niż minimalna. Wartość specjalna MaxExecutionResources wskazuje, że minimalny poziom współbieżności jest taki sam jak liczba wątków sprzętowych na maszynie. Jeśli określona MaxConcurrency wartość parametru jest mniejsza niż liczba wątków sprzętowych na maszynie i MinConcurrency jest określona jako MaxExecutionResources , wartość parametru MinConcurrency jest niższa, aby dopasować wartość ustawioną dla MaxConcurrency parametru .Prawidłowe wartości: liczby całkowite inne niż ujemne i wartość MaxExecutionResources specjalna . Należy pamiętać, że w przypadku zasad harmonogramu używanych do tworzenia harmonogramów środowiska uruchomieniowego współbieżności wartość 0 jest nieprawidłowa.Wartość domyślna: 1 |
SchedulerKind |
Typ wątków używanych przez harmonogram dla podstawowych kontekstów wykonywania. Aby uzyskać więcej informacji, zobacz SchedulerType. Prawidłowe wartości: element członkowski SchedulerType wyliczenia, na przykład ThreadScheduler Wartość domyślna: ThreadScheduler . Przekłada się to na wątki Win32 we wszystkich systemach operacyjnych. |
SchedulingProtocol |
Opisuje algorytm planowania, który będzie używany przez harmonogram. Aby uzyskać więcej informacji, zobacz SchedulingProtocolType. Prawidłowe wartości: element członkowski SchedulingProtocolType wyliczenia lub EnhanceScheduleGroupLocality EnhanceForwardProgress Wartość domyślna: EnhanceScheduleGroupLocality |
TargetOversubscriptionFactor |
Wstępna liczba procesorów wirtualnych na wątek sprzętu. Docelowy współczynnik zastąpienia można zwiększyć przez usługę Resource Manager, jeśli to konieczne, aby spełnić MaxConcurrency wymagania wątków sprzętowych na maszynie.Prawidłowe wartości: dodatnie liczby całkowite Wartość domyślna: 1 |
WinRTInitialization |
Wymagania
Nagłówek: concrt.h
SchedulerType, wyliczenie
Używane przez SchedulerKind
zasady do opisywania typu wątków, które harmonogram powinien używać dla podstawowych kontekstów wykonywania. Aby uzyskać więcej informacji na temat dostępnych zasad harmonogramu, zobacz PolicyElementKey.
enum SchedulerType;
Wartości
Nazwa/nazwisko | opis |
---|---|
ThreadScheduler |
Wskazuje jawne żądanie zwykłych wątków Win32. |
UmsThreadDefault |
Wątki z możliwością schedulable (UMS) w trybie użytkownika nie są obsługiwane w środowisku uruchomieniowym współbieżności w programie Visual Studio 2013. Użycie UmsThreadDefault jako wartości dla SchedulerType zasad nie spowoduje błędu. Jednak harmonogram utworzony za pomocą tych zasad będzie domyślnie używany w wątkach Win32. |
Wymagania
Nagłówek: concrt.h
SchedulingProtocolType, wyliczenie
Używane przez SchedulingProtocol
zasady do opisania algorytmu planowania, który będzie używany dla harmonogramu. Aby uzyskać więcej informacji na temat dostępnych zasad harmonogramu, zobacz PolicyElementKey.
enum SchedulingProtocolType;
Wartości
Nazwa/nazwisko | opis |
---|---|
EnhanceForwardProgress |
Harmonogram preferuje działanie okrężne za pomocą grup harmonogramu po wykonaniu każdego zadania. Odblokowywane konteksty są zwykle zaplanowane w sposób pierwszy na pierwszy na wyjście (FIFO). Procesory wirtualne nie buforują odblokowanych kontekstów. |
EnhanceScheduleGroupLocality |
Harmonogram preferuje kontynuowanie pracy nad zadaniami w bieżącej grupie harmonogramu przed przejściem do innej grupy harmonogramu. Odblokowane konteksty są buforowane na procesor wirtualny i są zwykle zaplanowane w trybie ostatniego wyjścia (LIFO) przez procesor wirtualny, który je odblokował. |
Wymagania
Nagłówek: concrt.h
SwitchingProxyState, wyliczenie
Służy do oznaczania stanu serwera proxy wątku, gdy wykonuje przełącznik kontekstu współpracy do innego serwera proxy wątku.
enum SwitchingProxyState;
Wartości
Nazwa/nazwisko | opis |
---|---|
Blocking |
Wskazuje, że wątek wywołujący jest kooperacyjnie blokujący i powinien być wyłącznie własnością obiektu wywołującego do czasu ponownego uruchomienia i wykonania innych akcji. |
Idle |
Wskazuje, że wątek wywołujący nie jest już potrzebny przez harmonogram i jest zwracany do usługi Resource Manager. Kontekst, który był wysyłany, nie jest już w stanie być używany przez usługę Resource Manager. |
Nesting |
Wskazuje, że wątek wywołujący zagnieżdża podrzędny harmonogram i jest wymagany przez obiekt wywołujący w celu dołączenia do innego harmonogramu. |
Uwagi
Parametr typu SwitchingProxyState
jest przekazywany do metody IThreadProxy::SwitchTo
w celu poinstruowania usługi Resource Manager, jak traktować serwer proxy wątku, który wykonuje wywołanie.
Aby uzyskać więcej informacji na temat sposobu użycia tego typu, zobacz IThreadProxy::SwitchTo.
task_group_status Wyliczenie
Opisuje stan task_group
wykonywania obiektu lub structured_task_group
. Wartość tego typu jest zwracana przez wiele metod, które oczekują na ukończenie zadań zaplanowanych do grupy zadań.
enum task_group_status;
Wartości
Nazwa/nazwisko | opis |
---|---|
canceled |
Obiekt task_group or structured_task_group został anulowany. Co najmniej jedno zadanie może nie zostać wykonane. |
completed |
Zadania znajdujące się w kolejce do task_group obiektu lub structured_task_group zostały ukończone pomyślnie. |
not_complete |
Zadania znajdujące się w kolejce task_group do obiektu nie zostały ukończone. Należy pamiętać, że ta wartość nie jest obecnie zwracana przez środowisko uruchomieniowe współbieżności. |
Wymagania
Nagłówek: pplinterface.h
WinRTInitializationType, wyliczenie
Używane przez WinRTInitialization
zasady do opisania, czy i jak środowisko wykonawcze systemu Windows zostaną zainicjowane w wątkach harmonogramu dla aplikacji, która działa w systemach operacyjnych w wersji Windows 8 lub nowszej. Aby uzyskać więcej informacji na temat dostępnych zasad harmonogramu, zobacz PolicyElementKey.
enum WinRTInitializationType;
Wartości
Nazwa/nazwisko | opis |
---|---|
DoNotInitializeWinRT |
Gdy aplikacja jest uruchamiana w systemach operacyjnych z systemem Windows 8 lub nowszym, wątki w harmonogramie nie zainicjują środowisko wykonawcze systemu Windows . |
InitializeWinRTAsMTA |
Gdy aplikacja jest uruchamiana w systemach operacyjnych z systemem Windows 8 lub nowszym, każdy wątek w harmonogramie zainicjuje środowisko wykonawcze systemu Windows i deklaruje, że jest częścią wielowątkowego mieszkania. |
Wymagania
Nagłówek: concrt.h