concurrency 命名空間列舉
agent_status列舉
agent
的有效狀態。
enum agent_status;
值
名稱 | 描述 |
---|---|
agent_canceled |
已取消 agent 。 |
agent_created |
agent 已建立 ,但尚未啟動。 |
agent_done |
agent 已完成但未取消。 |
agent_runnable |
agent 已啟動 ,但未輸入其 run 方法。 |
agent_started |
agent 已開始。 |
備註
如需詳細資訊,請參閱 異步代理程式。
需求
標頭: concrt.h
Agents_EventType列舉
可以使用代理程式程式庫所提供之追蹤功能追蹤的事件類型
enum Agents_EventType;
值
名稱 | 描述 |
---|---|
AGENTS_EVENT_CREATE |
表示建立物件的事件類型 |
AGENTS_EVENT_DESTROY |
表示刪除物件的事件類型 |
AGENTS_EVENT_END |
表示某些處理完成的事件類型 |
AGENTS_EVENT_LINK |
表示連結訊息區的事件類型 |
AGENTS_EVENT_NAME |
表示物件名稱的事件類型 |
AGENTS_EVENT_SCHEDULE |
表示排程處理序的事件類型 |
AGENTS_EVENT_START |
表示啟始某項處理的事件類型 |
AGENTS_EVENT_UNLINK |
表示取消連結訊息區的事件類型 |
需求
標頭: concrt.h
ConcRT_EventType列舉
可以使用並行執行階段所提供的追蹤功能追蹤的事件類型。
enum ConcRT_EventType;
值
名稱 | 描述 |
---|---|
CONCRT_EVENT_ATTACH |
事件類型,表示附加至排程器的行為。 |
CONCRT_EVENT_BLOCK |
事件類型,表示內容封鎖的動作。 |
CONCRT_EVENT_DETACH |
事件類型,表示與排程器中斷連結的動作。 |
CONCRT_EVENT_END |
事件類型,標記開始/結束事件組的開頭。 |
CONCRT_EVENT_GENERIC |
用於其他事件的事件類型。 |
CONCRT_EVENT_IDLE |
事件類型,表示內容變成閑置的動作。 |
CONCRT_EVENT_START |
事件類型,標記開始/結束事件組的開頭。 |
CONCRT_EVENT_UNBLOCK |
事件類型,表示解除封鎖內容的行為。 |
CONCRT_EVENT_YIELD |
事件類型,表示產生內容的行為。 |
需求
標頭: concrt.h 命名空間: 並行
Concrt_TraceFlags列舉
事件類型的追蹤旗標。
enum Concrt_TraceFlags;
值
名稱 | 描述 |
---|---|
AgentEventFlag |
|
AllEventsFlag |
|
ContextEventFlag |
|
PPLEventFlag |
|
ResourceManagerEventFlag |
|
SchedulerEventFlag |
|
VirtualProcessorEventFlag |
需求
標頭: concrt.h
CriticalRegionType 列舉
內含內容之關鍵區域的類型。
enum CriticalRegionType;
值
名稱 | 描述 |
---|---|
InsideCriticalRegion |
表示內容位於重要區域內。 在關鍵區域內時,會隱藏排程器中的異步暫停。 如果發生這類暫停,Resource Manager 會等候線程變成可執行,只需繼續它,而不是再次叫用排程器。 在這類區域內採取的任何鎖定都必須非常小心。 |
InsideHyperCriticalRegion |
表示內容位於超關鍵區域內。 在超關鍵區域內時,同步和異步暫停都會隱藏在排程器中。 如果發生這類暫停或封鎖,資源管理員會等候線程變成可執行,並直接繼續它,而不是再次叫用排程器。 在這類區域內擷取的鎖定絕不能與在這類區域外部執行的程式代碼共用。 這樣做會導致無法預測的死結。 |
OutsideCriticalRegion |
表示內容位於任何重要區域之外。 |
需求
標頭: concrtrm.h
DynamicProgressFeedbackType 列舉
DynamicProgressFeedback
原則用來描述要根據從排程器收集到的統計資訊重新平衡排程器的資源,或者只要根據透過 IVirtualProcessorRoot
介面上的 Activate
和 Deactivate
方法呼叫進出閒置狀態的虛擬處理器。 如需可用排程器原則的詳細資訊,請參閱 PolicyElementKey。
enum DynamicProgressFeedbackType;
值
名稱 | 描述 |
---|---|
ProgressFeedbackDisabled |
排程器不會收集進度資訊。 重新平衡是根據基礎硬體線程的訂用帳戶層級來完成。 如需訂用帳戶層級的詳細資訊,請參閱 IExecutionResource::CurrentSubscriptionLevel。 此值保留供運行時間使用。 |
ProgressFeedbackEnabled |
排程器會收集進度資訊,並將其傳遞至資源管理員。 除了基礎硬體線程的訂用帳戶層級之外,資源管理員還會使用此統計數據來代表排程器重新平衡資源。 如需訂用帳戶層級的詳細資訊,請參閱 IExecutionResource::CurrentSubscriptionLevel。 |
join_type列舉
join
傳訊區塊的類型。
enum join_type;
值
名稱 | 描述 |
---|---|
greedy |
貪婪 join 傳訊區塊會在傳播時立即接受訊息。 這會更有效率,但視網路組態而定,有可能進行實時鎖定。 |
non_greedy |
非貪婪 join 的傳訊會封鎖延後訊息,並在所有訊息送達後嘗試取用它們。 這些保證可以運作,但速度較慢。 |
需求
標頭: agents.h
message_status列舉
message
物件對區塊供應項目的有效回應。
enum message_status;
值
名稱 | 描述 |
---|---|
accepted |
目標已接受訊息。 |
declined |
目標不接受訊息。 |
missed |
目標嘗試接受訊息,但已無法使用。 |
postponed |
目標延後訊息。 |
需求
標頭: agents.h
PolicyElementKey 列舉
描述排程器行為方面的原則機碼。 每個原則項目由一個機碼值組描述。 如需排程器原則及其對排程器影響的詳細資訊,請參閱 工作排程器。
enum PolicyElementKey;
值
名稱 | 描述 |
---|---|
ContextPriority |
排程器中每個內容的作業系統線程優先順序。 如果此索引鍵設定為值 INHERIT_THREAD_PRIORITY ,排程器中的內容將會繼承建立排程器之線程的優先順序。有效值:Windows SetThreadPriority 函式的任何有效值和特殊值 INHERIT_THREAD_PRIORITY 預設值: THREAD_PRIORITY_NORMAL |
ContextStackSize |
排程器中每個內容的保留堆疊大小,以 KB 為單位。 有效值:正整數 默認值: 0 ,表示會使用進程的堆疊大小預設值。 |
DynamicProgressFeedback |
根據從排程器收集的統計數據,或僅根據基礎硬體線程的訂用帳戶層級,判斷排程器的資源是否會重新平衡。 如需詳細資訊,請參閱 DynamicProgressFeedbackType。 有效值:列舉的成員 DynamicProgressFeedbackType ,或ProgressFeedbackEnabled ProgressFeedbackDisabled 預設值: ProgressFeedbackEnabled |
LocalContextCacheSize |
當原則 SchedulingProtocol 索引鍵設定為 值 EnhanceScheduleGroupLocality 時,這會指定每個虛擬處理器本機佇列中允許快取的可執行內容數目上限。 這類內容通常會以最後先出 (LIFO) 順序在虛擬處理器上執行,導致它們變成可執行。 請注意,當機碼設定為 值 EnhanceForwardProgress 時,SchedulingProtocol 此原則索引鍵就沒有意義。有效值:非負整數 預設值: 8 |
MaxConcurrency |
排程器所需的最大併行層級。 資源管理員會嘗試一開始配置這個許多虛擬處理器。 特殊值 MaxExecutionResources 表示所需的並行層級與計算機上的硬體線程數目相同。 如果指定的MinConcurrency 值大於計算機上的硬體線程數目,且MaxConcurrency 指定為 MaxExecutionResources ,則會引發的值,以符合 所MinConcurrency 設定的值MaxConcurrency 。有效值:正整數和特殊值 MaxExecutionResources 預設值: MaxExecutionResources |
MaxPolicyElementKey |
原則專案索引鍵上限。 不是有效的專案索引鍵。 |
MinConcurrency |
資源管理員必須提供給排程器的最低並行層級。 指派給排程器的虛擬處理器數目永遠不會低於最小值。 特殊值 MaxExecutionResources 表示最小併行層級與電腦上的硬體線程數目相同。 如果 指定的MaxConcurrency 值小於計算機上的硬體線程數目,且MinConcurrency 指定為 MaxExecutionResources ,則會降低的值以符合 所MaxConcurrency 設定的值MinConcurrency 。有效值:非負整數和特殊值 MaxExecutionResources 。 請注意,對於用於建構並行執行階段排程器的排程器原則,0 值無效。預設值: 1 |
SchedulerKind |
排程器將用於基礎執行內容的線程類型。 如需詳細資訊,請參閱 SchedulerType。 有效值: SchedulerType 列舉的成員,例如 ThreadScheduler 。預設值: ThreadScheduler 。 這會轉譯為所有操作系統上的 Win32 線程。 |
SchedulingProtocol |
描述排程器將使用哪個排程演算法。 如需詳細資訊,請參閱 SchedulingProtocolType。 有效值:列舉的成員 SchedulingProtocolType ,或EnhanceScheduleGroupLocality EnhanceForwardProgress 預設值: EnhanceScheduleGroupLocality |
TargetOversubscriptionFactor |
每個硬體線程的虛擬處理器暫定數目。 如有必要,資源管理員可以增加目標過度訂閱因數,以滿足電腦上硬體執行緒的 MaxConcurrency 。有效值:正整數 預設值: 1 |
WinRTInitialization |
需求
標頭: concrt.h
SchedulerType 列舉
SchedulerKind
原則用來描述排程器應用於基礎執行內容的執行緒類型。 如需可用排程器原則的詳細資訊,請參閱 PolicyElementKey。
enum SchedulerType;
值
名稱 | 描述 |
---|---|
ThreadScheduler |
指出一般 Win32 線程的明確要求。 |
UmsThreadDefault |
Visual Studio 2013 的並行運行時間不支援使用者模式可分流處理線程 (UMS) 線程。 使用 UmsThreadDefault 做為 SchedulerType 原則的值不會產生錯誤。 然而,以這個原則建立的排程器將會預設為使用 Win32 執行緒。 |
需求
標頭: concrt.h
SchedulingProtocolType 列舉
SchedulingProtocol
原則用於描述排程器將使用的排程演算法。 如需可用排程器原則的詳細資訊,請參閱 PolicyElementKey。
enum SchedulingProtocolType;
值
名稱 | 描述 |
---|---|
EnhanceForwardProgress |
排程器在執行每個工作之後,偏好透過排程群組迴圈配置資源。 解除封鎖的內容通常會以先出 (FIFO) 的方式排程。 虛擬處理器不會快取未封鎖的內容。 |
EnhanceScheduleGroupLocality |
排程器偏好先繼續處理目前排程群組內的工作,再移至另一個排程群組。 解除封鎖的內容會根據虛擬處理器進行快取,通常由解除封鎖它們的虛擬處理器以最後先出 (LIFO) 方式排程。 |
需求
標頭: concrt.h
SwitchingProxyState 列舉
用來表示執行緒 Proxy 所處的狀態 (當它正在執行將合作內容切換到不同的執行緒 Proxy 時)。
enum SwitchingProxyState;
值
名稱 | 描述 |
---|---|
Blocking |
表示呼叫線程會合作封鎖,而且應該由呼叫端獨佔擁有,直到後續再次執行並執行其他動作為止。 |
Idle |
表示排程器不再需要呼叫線程,而且會傳回給 Resource Manager。 正在分派的內容無法再由 Resource Manager 使用。 |
Nesting |
表示呼叫端正在巢狀子排程器,而且呼叫端需要此線程才能附加至不同的排程器。 |
備註
類型的 SwitchingProxyState
參數會傳入 方法 IThreadProxy::SwitchTo
,以指示 Resource Manager 如何處理正在呼叫的線程 Proxy。
如需如何使用此類型的詳細資訊,請參閱 IThreadProxy::SwitchTo。
task_group_status列舉
描述 task_group
或 structured_task_group
物件的執行狀態。 等待預定工作群組完成工作的許多方法,會傳回這個類型的值。
enum task_group_status;
值
名稱 | 描述 |
---|---|
canceled |
task_group 或 structured_task_group 物件已取消。 可能有一個或多個工作尚未執行。 |
completed |
在 task_group 或 structured_task_group 物件列隊的工作已順利完成。 |
not_complete |
在 task_group 物件列隊的工作尚未完成。 請注意,目前不會由並行執行階段傳回這個值。 |
需求
標頭: pplinterface.h
WinRTInitializationType 列舉
由 WinRTInitialization
原則用來描述 Windows 執行階段是否會在執行 Windows 8 (含) 以後版本作業系統之應用程式的排程器執行緒上初始化,以及如何進行初始化。 如需可用排程器原則的詳細資訊,請參閱 PolicyElementKey。
enum WinRTInitializationType;
值
名稱 | 描述 |
---|---|
DoNotInitializeWinRT |
如果應用程式是在 Windows 8 (含) 以後版本的作業系統上執行,則排程器內的執行緒將不會初始化 Windows 執行階段。 |
InitializeWinRTAsMTA |
如果應用程式是在 Windows 8 (含) 以後版本的作業系統上執行,排程器內的每個執行緒將會初始化 Windows 執行階段,並將它宣告為多執行緒 Apartment 的一部分。 |
需求
標頭: concrt.h