concurrency – výčty oboru názvů
výčet agent_status
Platné stavy pro znak .agent
enum agent_status;
Hodnoty
Název | Popis |
---|---|
agent_canceled |
Zrušili jsme ho agent . |
agent_created |
Vytvořili jsme ho, ale nezačli jste ho agent . |
agent_done |
Dokončeno agent bez zrušení. |
agent_runnable |
Byla agent zahájena, ale nebyla zadána její run metoda. |
agent_started |
Začalo to agent . |
Poznámky
Další informace naleznete v tématu Asynchronní agenti.
Požadavky
Hlavička: concrt.h
Agents_EventType – výčet
Typy událostí, které lze sledovat pomocí funkce trasování nabízené knihovnou agentů
enum Agents_EventType;
Hodnoty
Název | Popis |
---|---|
AGENTS_EVENT_CREATE |
Typ události, který představuje vytvoření objektu |
AGENTS_EVENT_DESTROY |
Typ události, který představuje odstranění objektu |
AGENTS_EVENT_END |
Typ události, který představuje závěr určitého zpracování |
AGENTS_EVENT_LINK |
Typ události, který představuje propojení bloků zpráv |
AGENTS_EVENT_NAME |
Typ události představující název objektu |
AGENTS_EVENT_SCHEDULE |
Typ události, který představuje plánování procesu |
AGENTS_EVENT_START |
Typ události, který představuje inicializace určitého zpracování |
AGENTS_EVENT_UNLINK |
Typ události, který představuje zrušení propojení bloků zpráv |
Požadavky
Hlavička: concrt.h
ConcRT_EventType – výčet
Typy událostí, které lze sledovat pomocí funkce trasování nabízené modulem Concurrency Runtime.
enum ConcRT_EventType;
Hodnoty
Název | Popis |
---|---|
CONCRT_EVENT_ATTACH |
Typ události, který představuje akt připojení k plánovači. |
CONCRT_EVENT_BLOCK |
Typ události, který představuje akci blokování kontextu. |
CONCRT_EVENT_DETACH |
Typ události, který představuje akt odpojení od plánovače. |
CONCRT_EVENT_END |
Typ události, který označuje začátek páru počáteční/koncové události. |
CONCRT_EVENT_GENERIC |
Typ události používaný pro různé události. |
CONCRT_EVENT_IDLE |
Typ události, který představuje aktu kontextu, který se stává nečinným. |
CONCRT_EVENT_START |
Typ události, který označuje začátek páru počáteční/koncové události. |
CONCRT_EVENT_UNBLOCK |
Typ události, který představuje akci odblokování kontextu. |
CONCRT_EVENT_YIELD |
Typ události, který představuje akt kontextu, který přináší. |
Požadavky
Header: concrt.h Namespace: concurrency
Concrt_TraceFlags – výčet
Příznaky trasování pro typy událostí
enum Concrt_TraceFlags;
Hodnoty
Název | Popis |
---|---|
AgentEventFlag |
|
AllEventsFlag |
|
ContextEventFlag |
|
PPLEventFlag |
|
ResourceManagerEventFlag |
|
SchedulerEventFlag |
|
VirtualProcessorEventFlag |
Požadavky
Hlavička: concrt.h
CriticalRegionType – výčet
Typ kritické oblasti, ve které je kontext.
enum CriticalRegionType;
Hodnoty
Název | Popis |
---|---|
InsideCriticalRegion |
Označuje, že kontext je uvnitř kritické oblasti. V kritické oblasti jsou asynchronní pozastavení v plánovači skryta. Pokud k takovému pozastavení dojde, Resource Manager počká, až se vlákno spustí, a jednoduše ho znovu spustí a nebude ho znovu vyvolávat. Všechny zámky pořízené v takové oblasti musí být s extrémní opatrností. |
InsideHyperCriticalRegion |
Označuje, že kontext je uvnitř hyperkrité oblasti. V případě hyperkritiky jsou synchronní i asynchronní pozastavení před plánovačem skryta. Pokud k takovému pozastavení nebo blokování dojde, správce prostředků počká, až se vlákno spustí, a jednoduše ho obnoví, a nebude ho znovu vyvolávat. Zámky pořízené v takové oblasti nesmí být nikdy sdíleny s kódem spuštěným mimo takovou oblast. To způsobí nepředvídatelné zablokování. |
OutsideCriticalRegion |
Označuje, že kontext je mimo jakoukoli kritickou oblast. |
Požadavky
Hlavička: concrtrm.h
DynamicProgressFeedbackType – výčet
DynamicProgressFeedback
Tyto zásady používají k popisu, zda budou prostředky pro plánovač znovu vyváženy podle statistických informací shromážděných z plánovače nebo pouze na základě virtuálních procesorů procházejících a mimo stav nečinnosti prostřednictvím volání Activate
a Deactivate
metod v IVirtualProcessorRoot
rozhraní. Další informace o dostupných zásadách plánovače najdete v tématu PolicyElementKey.
enum DynamicProgressFeedbackType;
Hodnoty
Název | Popis |
---|---|
ProgressFeedbackDisabled |
Plánovač neshromažďuje informace o průběhu. Vyrovnávání se provádí výhradně na úrovni předplatného základního hardwarového vlákna. Další informace o úrovních předplatného najdete v tématu IExecutionResource::CurrentSubscriptionLevel. Tato hodnota je vyhrazena pro použití modulem runtime. |
ProgressFeedbackEnabled |
Plánovač shromažďuje informace o průběhu a předává je správci prostředků. Správce prostředků bude tyto statistické informace využívat k opětovnému vyvážení prostředků jménem plánovače kromě úrovně předplatného základního hardwarového vlákna. Další informace o úrovních předplatného najdete v tématu IExecutionResource::CurrentSubscriptionLevel. |
join_type – výčet
Typ join
bloku zasílání zpráv.
enum join_type;
Hodnoty
Název | Popis |
---|---|
greedy |
Bloky zasílání zpráv greedy join okamžitě přijímají zprávu po šíření. To je efektivnější, ale má možnost živého uzamčení v závislosti na konfiguraci sítě. |
non_greedy |
Zprávy, které nejsou greedy join , odkládají zprávy a zkouší je používat, až dorazí. To je zaručeno, že fungují, ale pomalejší. |
Požadavky
Hlavička: agents.h
message_status – výčet
Platné odpovědi na nabídku objektu message
do bloku.
enum message_status;
Hodnoty
Název | Popis |
---|---|
accepted |
Cíl zprávu přijal. |
declined |
Cíl zprávu nepřijal. |
missed |
Cíl se pokusil zprávu přijmout, ale už nebyl k dispozici. |
postponed |
Cíl zprávu odložil. |
Požadavky
Hlavička: agents.h
PolicyElementKey – výčet
Klíče zásad popisující aspekty chování plánovače Každý prvek zásady je popsán párem klíč-hodnota. Další informace o zásadách plánovače a jejich dopadu na plánovače najdete v tématu Plánovač úloh.
enum PolicyElementKey;
Hodnoty
Název | Popis |
---|---|
ContextPriority |
Priorita vlákna operačního systému každého kontextu v plánovači. Pokud je tento klíč nastaven na hodnotu INHERIT_THREAD_PRIORITY kontextů v plánovači, dědí prioritu vlákna, které vytvořil plánovač.Platné hodnoty: Libovolná z platných hodnot pro funkci Windows SetThreadPriority a zvláštní hodnota INHERIT_THREAD_PRIORITY Výchozí hodnota: THREAD_PRIORITY_NORMAL |
ContextStackSize |
Rezervovaná velikost zásobníku každého kontextu v plánovači v kilobajtech. Platné hodnoty: Kladná celá čísla Výchozí hodnota: 0 označující, že se použije výchozí hodnota procesu pro velikost zásobníku. |
DynamicProgressFeedback |
Určuje, zda budou prostředky pro plánovač znovu vyváženy podle statistických informací shromážděných z plánovače nebo pouze na základě úrovně předplatného podkladových hardwarových vláken. Další informace naleznete v tématu DynamicProgressFeedbackType. Platné hodnoty: Člen výčtu DynamicProgressFeedbackType , buď ProgressFeedbackEnabled nebo ProgressFeedbackDisabled Výchozí hodnota: ProgressFeedbackEnabled |
LocalContextCacheSize |
SchedulingProtocol Pokud je klíč zásady nastaven na hodnotu EnhanceScheduleGroupLocality , určuje maximální počet spustitelných kontextů, které se můžou ukládat do mezipaměti v jednotlivých místních frontách virtuálního procesoru. Tyto kontexty se obvykle spouštějí v pořadí liFO (last-in-first-out) na virtuálním procesoru, které je způsobilo, že se dají spustit. Všimněte si, že tento klíč zásady nemá význam, pokud SchedulingProtocol je klíč nastaven na hodnotu EnhanceForwardProgress .Platné hodnoty: Nezáporná celá čísla Výchozí hodnota: 8 |
MaxConcurrency |
Maximální úroveň souběžnosti požadovaná plánovačem. Správce prostředků se pokusí nejprve přidělit tento počet virtuálních procesorů. Speciální hodnota MaxExecutionResources označuje, že požadovaná úroveň souběžnosti je stejná jako počet hardwarových vláken na počítači. Pokud je hodnota zadaná pro MinConcurrency větší než počet hardwarových vláken v počítači a MaxConcurrency je zadána jako MaxExecutionResources , hodnota pro MaxConcurrency je vyvolána tak, aby odpovídala nastavenému parametru MinConcurrency .Platné hodnoty: Kladná celá čísla a zvláštní hodnota MaxExecutionResources Výchozí hodnota: MaxExecutionResources |
MaxPolicyElementKey |
Maximální klíč elementu zásad. Neplatný klíč elementu. |
MinConcurrency |
Minimální úroveň souběžnosti, kterou musí plánovač poskytnout správci prostředků. Počet virtuálních procesorů přiřazených plánovači nikdy nebude nižší než minimum. Speciální hodnota MaxExecutionResources označuje, že minimální úroveň souběžnosti je stejná jako počet hardwarových vláken na počítači. Pokud je hodnota zadaná pro MaxConcurrency menší než počet hardwarových vláken v počítači a MinConcurrency je zadána jako MaxExecutionResources , hodnota pro MinConcurrency je nižší, aby odpovídala nastavenému parametru MaxConcurrency .Platné hodnoty: Nezáporná celá čísla a zvláštní hodnota MaxExecutionResources . Všimněte si, že pro zásady plánovače používané pro vytváření plánovačů concurrency Runtime je hodnota 0 neplatná.Výchozí hodnota: 1 |
SchedulerKind |
Typ vláken, která bude plánovač využívat pro podkladové kontexty spuštění. Další informace naleznete v části SchedulerType. Platné hodnoty: Člen výčtu SchedulerType , například ThreadScheduler Výchozí hodnota : ThreadScheduler . To se přeloží na vlákna Win32 ve všech operačních systémech. |
SchedulingProtocol |
Popisuje, který algoritmus plánování bude plánovač používat. Další informace naleznete v tématu SchedulingProtocolType. Platné hodnoty: Člen výčtu SchedulingProtocolType , buď EnhanceScheduleGroupLocality nebo EnhanceForwardProgress Výchozí hodnota: EnhanceScheduleGroupLocality |
TargetOversubscriptionFactor |
Nezávazný počet virtuálních procesorů na hardwarové vlákno Cílový faktor oversubscription může Resource Manager v případě potřeby zvýšit tak, aby vyhovoval MaxConcurrency hardwarovým vláknům na počítači.Platné hodnoty: Kladná celá čísla Výchozí hodnota: 1 |
WinRTInitialization |
Požadavky
Hlavička: concrt.h
SchedulerType – výčet
Používá se zásadou SchedulerKind
k popisu typu vláken, které má plánovač využívat pro podkladové kontexty spouštění. Další informace o dostupných zásadách plánovače najdete v tématu PolicyElementKey.
enum SchedulerType;
Hodnoty
Název | Popis |
---|---|
ThreadScheduler |
Označuje explicitní požadavek běžných vláken Win32. |
UmsThreadDefault |
Vlákna s možností přístupnosti uživatelského režimu (UMS) nejsou podporována v modulu Concurrency Runtime v sadě Visual Studio 2013. Použití UmsThreadDefault jako hodnoty pro zásadu SchedulerType nebude mít za následek chybu. Plánovač vytvořený pomocí této zásady se ale ve výchozím nastavení použije podprocesy Win32. |
Požadavky
Hlavička: concrt.h
SchedulingProtocolType – výčet
Používá se zásadou SchedulingProtocol
k popisu, který algoritmus plánování se bude používat pro plánovač. Další informace o dostupných zásadách plánovače najdete v tématu PolicyElementKey.
enum SchedulingProtocolType;
Hodnoty
Název | Popis |
---|---|
EnhanceForwardProgress |
Plánovač dává přednost kruhovým dotazování prostřednictvím skupin plánů po provedení jednotlivých úloh. Odblokované kontexty se obvykle plánují způsobem FIFO (first-in-first-out). Virtuální procesory neuloží blokované kontexty do mezipaměti. |
EnhanceScheduleGroupLocality |
Plánovač dává přednost tomu, aby před přechodem na jinou skupinu plánů pokračoval v práci na úkolech v rámci aktuální skupiny plánů. Odblokované kontexty se ukládají do mezipaměti na jeden virtuální procesor a obvykle se plánují podle typu LIFO (last-in-first-out) virtuálním procesorem, který je odblokoval. |
Požadavky
Hlavička: concrt.h
SwitchingProxyState – výčet
Používá se k označení stavu, ve který je proxy vlákna, když spouští kooperativní kontext přepnutí na jiný proxy vlákno.
enum SwitchingProxyState;
Hodnoty
Název | Popis |
---|---|
Blocking |
Označuje, že volající vlákno je kooperativně blokující a mělo by být vlastníkem výhradně volající, dokud následně znovu neběží a provede další akci. |
Idle |
Označuje, že volající vlákno už plánovač nepotřebuje a vrací se do Resource Manageru. Kontext, který byl odeslán, už není možné využívat Resource Managerem. |
Nesting |
Označuje, že volající vlákno vnořuje podřízený plánovač a volající ho potřebuje k připojení k jinému plánovači. |
Poznámky
Parametr typu SwitchingProxyState
se předá metodě IThreadProxy::SwitchTo
, který dává Resource Manageru pokyn, jak zacházet s proxy vláknem, který provádí volání.
Další informace o použití tohoto typu naleznete v tématu IThreadProxy::SwitchTo.
task_group_status – výčet
Popisuje stav spuštění objektu nebo structured_task_group
objektutask_group
. Hodnota tohoto typu je vrácena mnoha metodami, které čekají na dokončení úkolů naplánovaných na skupinu úkolů.
enum task_group_status;
Hodnoty
Název | Popis |
---|---|
canceled |
Objekt task_group byl structured_task_group zrušen. Nejméně jeden úkol se možná nespusil. |
completed |
Úkoly zařazené do fronty k objektu nebo structured_task_group objektu task_group byly úspěšně dokončeny. |
not_complete |
Úkoly zařazené do fronty objektu task_group nebyly dokončeny. Všimněte si, že tato hodnota není v současnosti vrácena modulem Concurrency Runtime. |
Požadavky
Záhlaví: pplinterface.h
WinRTInitializationType – výčet
WinRTInitialization
Tato zásada popisuje, jestli a jak se prostředí Windows Runtime inicializují na vlákna plánovače pro aplikaci, která běží v operačních systémech s windows 8 nebo vyšší. Další informace o dostupných zásadách plánovače najdete v tématu PolicyElementKey.
enum WinRTInitializationType;
Hodnoty
Název | Popis |
---|---|
DoNotInitializeWinRT |
Pokud je aplikace spuštěna v operačních systémech s verzí Windows 8 nebo vyšší, vlákna v plánovači nebudou inicializovat prostředí Windows Runtime . |
InitializeWinRTAsMTA |
Když je aplikace spuštěna v operačních systémech s verzí Windows 8 nebo vyšší, každé vlákno v plánovači inicializuje prostředí Windows Runtime a deklaruje, že je součástí vícevláknového bytu. |
Požadavky
Hlavička: concrt.h