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 介面上的 ActivateDeactivate 方法呼叫進出閒置狀態的虛擬處理器。 如需可用排程器原則的詳細資訊,請參閱 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 ,或 ProgressFeedbackEnabledProgressFeedbackDisabled

預設值: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 ,或 EnhanceScheduleGroupLocalityEnhanceForwardProgress

預設值: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_groupstructured_task_group 物件的執行狀態。 等待預定工作群組完成工作的許多方法,會傳回這個類型的值。

enum task_group_status;

名稱 描述
canceled task_groupstructured_task_group 物件已取消。 可能有一個或多個工作尚未執行。
completed task_groupstructured_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

另請參閱

concurrency 命名空間