コンカレンシー名前空間を持つ列挙型
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 名前空間: concurrency
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
ポリシーによって使用され、スケジューラのリソースのバランスを再調整する際の判断基準として、スケジューラから収集された統計情報に従うか、または Activate
インターフェイスの Deactivate
メソッドおよび IVirtualProcessorRoot
メソッドの呼び出しによってアイドル状態との間で状態が変化する仮想プロセッサのみに基づくかを示します。 使用できるスケジューラ ポリシーの詳細については、「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) の順序で実行されます。 SchedulingProtocol キーが値 EnhanceForwardProgress に設定されている場合、このポリシー キーには意味がないことに注意してください。有効な値: 非負整数 既定値: 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 を満たすために、Resource Manager は必要に応じてターゲットのオーバーサブスクリプション係数を増やすことができます。有効な値: 正の整数 既定値: 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 列挙
あるスレッド プロキシから別のスレッド プロキシへの協調的なコンテキスト切り替えを実行するときに、スレッド プロキシの状態を示すために使用します。
enum SwitchingProxyState;
値
名前 | 説明 |
---|---|
Blocking |
呼び出し元のスレッドが協調的にブロックしており、その後、再び実行されて他のアクションを実行するまで、呼び出し元が排他的に所有する必要があることを示します。 |
Idle |
呼び出し元のスレッドがスケジューラで不要になり、Resource Manager に戻されることを示します。 ディスパッチされていたコンテキストは、Resource Manager で使用できなくなります。 |
Nesting |
別のスケジューラにアタッチするために、呼び出し元のスレッドが子スケジューラを入れ子にしており、呼び出し元が必要としていることを示します。 |
解説
呼び出しを行っているスレッド プロキシの扱い方を Resource Manager に指示するために、SwitchingProxyState
型のパラメーターが IThreadProxy::SwitchTo
メソッドに渡されます。
この型の使用方法の詳細については、IThreadProxy::SwitchTo に関するセクションを参照してください。
task_group_status列挙
task_group
オブジェクトまたは structured_task_group
オブジェクトの実行状態を示します。 この型の値は、タスク グループに対してスケジュールされたタスクが完了するのを待機している多数のメソッドによって返されます。
enum task_group_status;
値
名前 | 説明 |
---|---|
canceled |
task_group オブジェクトまたは structured_task_group オブジェクトは取り消されました。 1 つまたは複数のタスクが実行されていない可能性があります。 |
completed |
task_group オブジェクトまたは structured_task_group オブジェクトのキューに格納されたタスクは、正常に完了しました。 |
not_complete |
task_group オブジェクトのキューに格納されたタスクは完了していません。 この値は、コンカレンシー ランタイムによって現在返されていないことに注意してください。 |
要件
ヘッダー: pplinterface.h
WinRTInitializationType 列挙
WinRTInitialization
ポリシーによって使用され、Windows 8 以上のオペレーティング システムで実行されるアプリケーション用のスケジューラ スレッドで、Windows ランタイムを初期化するかどうか、またどのように初期化するかを表します。 使用できるスケジューラ ポリシーの詳細については、「PolicyElementKey」を参照してください。
enum WinRTInitializationType;
値
名前 | 説明 |
---|---|
DoNotInitializeWinRT |
アプリケーションが Windows 8 またはそれ以降のバージョンのオペレーティング システムで実行される場合、スケジューラ内のスレッドは、Windows ランタイムを初期化しません。 |
InitializeWinRTAsMTA |
アプリケーションが Windows 8 またはそれ以降のバージョンのオペレーティング システムで実行される場合、スケジューラ内の各スレッドは、Windows ランタイムを初期化し、マルチスレッド アパートメントの一部であることを宣言します。 |
要件
ヘッダー: concrt.h