concurrency 名前空間
Concurrency 名前空間には、C++ 向けの並列プログラミング フレームワークである同時実行ランタイムにアクセスするためのクラスおよび関数が用意されています。 詳細については、「同時実行ランタイム」を参照してください。
namespace concurrency;
メンバー
名前空間
名前 |
説明 |
---|---|
concurrency::extensibility Namespace |
Typedef
名前 |
説明 |
---|---|
runtime_object_identity |
各メッセージ インスタンスには、メッセージング コンポーネント間でメッセージ インスタンスの複製または受け渡しを行うときに使用する ID があります。 メッセージ オブジェクトのアドレスをこの ID として指定することはできません。 |
task_status |
タスクの終了状態を表す型。 有効値は completed または canceled です。 |
TaskProc |
void (__cdecl * TaskProc)(void *) として定義される、タスクの基本抽象化です。 TaskProc は、タスクの本体を呼び出すために呼び出されます。 |
TaskProc_t |
void (__cdecl * TaskProc_t)(void *) として定義される、タスクの基本抽象化です。 TaskProc は、タスクの本体を呼び出すために呼び出されます。 |
クラス
名前 |
説明 |
---|---|
affinity_partitioner クラスは static_partitioner クラスに似ていますが、ワーカー スレッドへのマッピングのサブ範囲の選択によってキャッシュの関係が向上します。 同じデータ セットに対してループ処理が再実行されるときにパフォーマンスを大幅に向上させることができ、データはキャッシュに収まります。 データの局所性のメリットを利用するには、特定のデータ セットに対して実行される並列ループの以降のイテレーションで、同じ affinity_partitioner オブジェクトを使用する必要があります。 |
|
すべての独立エージェントの基底クラスとして使用されるクラスです。 他のエージェントに状態が表示されないようにしたり、メッセージ渡しでやり取りしたりする目的で使用されます。 |
|
auto_partitioner クラスは、反復処理する範囲を分割するために、既定のメソッド parallel_for、parallel_for_each、および parallel_transform の使用を表します。 このパーティション分割のメソッドでは、負荷分散および反復ごとの取り消しで範囲スティーリングが使用されます。 |
|
このクラスは、実行する操作の無効なターゲットへのポインターがメッセージング ブロックに渡された場合にスローされる例外を表します。 |
|
call メッセージング ブロックは、複数のソースを持つ、順序付けられた target_block であり、メッセージを受け取ったときに指定された関数を呼び出します。 |
|
cancellation_token クラスは、ある操作の取り消しが要求されたかどうかを判断する機能を表します。 特定のトークンを task_group、structured_task_group、または task に関連付けると、暗黙的な取り消しを指定できます。 関連付けられた cancellation_token_source が取り消されたときに、取り消すためにポーリングしたり、コールバックを登録したりすることもできます。 |
|
cancellation_token_registration クラスは、cancellation_token からのコールバック通知を表します。 cancellation_token の register メソッドを使用して取り消し発生の通知を受け取るとき、cancellation_token_registration オブジェクトはハンドルとしてコールバックに返されます。したがって、呼び出し元は deregister メソッドを使用して、特定のコールバックが以降行われないように要求できます。 |
|
cancellation_token_source クラスは、取り消し可能な操作を取り消す機能を表します。 |
|
choice メッセージング ブロックは、複数のソースと単一のターゲットを持つブロックであり、一連のソースとの制御フローの相互作用を表します。 choice ブロックは、複数のソースのいずれかがメッセージを生成するのを待ち、そのメッセージを生成したソースのインデックスを伝達します。 |
|
combinable<T> オブジェクトは、スレッド プライベートなデータのコピーを提供し、並列アルゴリズムにおいてロック制御不要なスレッド ローカルのサブ計算を実行するために用意されています。 並列操作の最後に、スレッド プライベート サブ計算を最終結果に結合できます。 共有変数に多数の競合が発生する可能性がある場合、共有変数の代わりにこのクラスを使用することにより、パフォーマンスを改善できます。 |
|
concurrent_priority_queue クラスは、複数のスレッドが項目を同時にプッシュおよびポップできるようにするコンテナーです。 項目は優先順位の順にポップされます。この優先順位は、テンプレート引数として指定されたファンクタによって決まります。 |
|
concurrent_queue クラスは、キューの要素に先入れ先出し方式でアクセスできるようにするシーケンス コンテナー クラスです。 これを使用すると、push、try_pop などの特定の同時実行セーフな操作を実行できます。 |
|
concurrent_unordered_map クラスは、std::pair<const _Key_type, _Element_type> 型要素の可変長シーケンスを制御する同時実行セーフなコンテナーです。 このシーケンスは、同時実行セーフな追加、要素アクセス、反復子アクセス、反復子走査の各操作を実行できるように表されます。 |
|
concurrent_unordered_multimap クラスは、std::pair<const _Key_type, _Element_type> 型要素の可変長シーケンスを制御する同時実行セーフなコンテナーです。 このシーケンスは、同時実行セーフな追加、要素アクセス、反復子アクセス、反復子走査の各操作を実行できるように表されます。 |
|
concurrent_unordered_multiset クラスは、_Key_type 型要素の可変長シーケンスを制御する同時実行セーフなコンテナーです。 このシーケンスは、同時実行セーフな追加、要素アクセス、反復子アクセス、反復子走査の各操作を実行できるように表されます。 |
|
concurrent_unordered_set クラスは、_Key_type 型要素の可変長シーケンスを制御する同時実行セーフなコンテナーです。 このシーケンスは、同時実行セーフな追加、要素アクセス、反復子アクセス、反復子走査の各操作を実行できるように表されます。 |
|
concurrent_vector クラスは、任意の要素にランダムにアクセスできるようにするシーケンス コンテナー クラスです。 これを使用すると、同時実行セーフな追加、要素アクセス、反復子アクセス、および反復子走査の各操作を実行できます。 |
|
実行コンテキストの抽象化を表します。 |
|
このクラスは、同じコンテキストから Context オブジェクトの Unblock メソッドが呼び出された場合にスローされる例外を表します。 これは、特定のコンテキストがそれ自体のブロックを解除しようとしたことを示します。 |
|
このクラスは、Context オブジェクトの Block メソッドと Unblock メソッドの呼び出しが正しく対になっていない場合にスローされる例外を表します。 |
|
同時実行ランタイムを明示的に認識する再入不可能なミューテックスです。 |
|
呼び出し元コンテキストに関連付けられている現在のスケジューラの抽象化を表します。 |
|
このクラスは、既定のスケジューラが既にプロセス内に存在するときに Scheduler::SetDefaultSchedulerPolicy メソッドが呼び出された場合にスローされる例外を表します。 |
|
同時実行ランタイムを明示的に認識する手動リセット イベントです。 |
|
このクラスは、ロックが正しく取得されなかった場合にスローされる例外を表します。 |
|
このクラスは、現在のコンテキストに既にアタッチされている Scheduler オブジェクトで Attach メソッドが呼び出された場合にスローされる例外を表します。 |
|
このクラスは、Scheduler オブジェクトの Attach メソッドによってスケジューラにアタッチされていないコンテキストで CurrentScheduler::Detach メソッドが呼び出された場合にスローされる例外を表します。 |
|
このクラスは、終了中の Scheduler オブジェクトで、スケジューラに属していないコンテキストから Reference メソッドが呼び出された場合にスローされる例外を表します。 |
|
このクラスは、メッセージング ブロックの link_target メソッドが呼び出されたときに、そのメッセージング ブロックがターゲットにリンクできない場合にスローされる例外を表します。 この例外の原因としては、メッセージング ブロックのリンク数の上限を超えた場合、または特定のターゲットを同じソースに 2 回リンクしようとした場合があります。 |
|
このクラスは、task_group オブジェクトまたは structured_task_group オブジェクトの run メソッドを使用して task_handle オブジェクトが複数回スケジュールされた場合、間に wait メソッドまたは run_and_wait メソッドを呼び出さなかったときにスローされる例外を表します。 |
|
このクラスは、同時実行ランタイムによってスローされる他の例外の種類によって正確に記述されない無効な操作を実行しようとした場合にスローされる例外を表します。 |
|
このクラスは、_BeginOversubscription パラメーターが true に設定された Context::Oversubscribe メソッドを事前に呼び出さずに、_BeginOversubscription パラメーターが false に設定された Context::Oversubscribe メソッドを呼び出した場合にスローされる例外を表します。 |
|
このクラスは、無効なキーまたは不明なキーが SchedulerPolicy オブジェクトのコンストラクターに渡された場合、あるいは、本来他の方法 (SetConcurrencyLimits メソッドなど) で変更する必要のあるキーが SchedulerPolicy オブジェクトの SetPolicyValue メソッドに渡された場合にスローされる例外を表します。 |
|
このクラスは、SchedulerPolicy オブジェクトの同時実行数の限度を設定する際に、MinConcurrency キーに指定された値が MaxConcurrency キーの値よりも小さい場合にスローされる例外を表します。 |
|
このクラスは、SchedulerPolicy オブジェクトのポリシー キーがそのキーの無効な値に設定された場合にスローされる例外を表します。 |
|
ISource クラスは、すべてのソース ブロック用のインターフェイスです。 ソース ブロックは、メッセージを ITarget ブロックに伝達します。 |
|
ITarget クラスは、すべてのターゲット ブロックのインターフェイスです。 ターゲット ブロックは、ISource ブロックから提供されたメッセージを処理します。 |
|
join メッセージング ブロックは、単一のターゲットと複数のソースを持つ順序付けられた propagator_block であり、各ソースから、種類が _Type であるメッセージを結合します。 |
|
ハードウェアの物理位置の抽象化です。 |
|
メッセージング ブロック間で渡されるデータ ペイロードが格納される、基本的なメッセージ エンベロープ。 |
|
このクラスは、要求されたメッセージがメッセージング ブロックで見つからない場合にスローされる例外を表します。 |
|
message_processor クラスは、message オブジェクトを処理するための抽象基底クラスです。 メッセージの順序は保証されません。 |
|
このクラスは、task_group オブジェクトまたは structured_task_group オブジェクトのデストラクターの実行時に、そのオブジェクトにスケジュールされたタスクがまだ存在する場合にスローされる例外を表します。 例外の結果としてのスタック アンワインドによりデストラクターが実行される場合、この例外はスローされません。 |
|
multi_link_registry オブジェクトは、複数のソース ブロックまたは複数のターゲット ブロックを管理する network_link_registry です。 |
|
multitype_join メッセージング ブロックは、複数のソースと単一のターゲットを持つメッセージング ブロックで、それぞれのソースから受け取った異なる種類のメッセージを 1 つに結合してターゲットに渡します。 |
|
このクラスは、Scheduler オブジェクトの Attach メソッドによって別のスケジューラにアタッチされているコンテキストで CurrentScheduler::Detach メソッドが呼び出されなかったことを、同時実行ランタイムが検出した場合にスローされる例外を表します。 |
|
network_link_registry 抽象基底クラスによって、ソース ブロックとターゲット ブロック間のリンクを管理します。 |
|
このクラスは、操作がタイムアウトした場合にスローされる例外を表します。 |
|
ordered_message_processor は、メッセージ ブロックがメッセージを受け取った順序で処理できるようにする message_processor です。 |
|
overwrite_buffer メッセージング ブロックは、一度に 1 つのメッセージを格納することができる、複数のターゲットと複数のソースを持つ順序付けられた propagator_block です。 新しいメッセージが与えられると、それまで格納されていたメッセージは上書きされます。 |
|
progress reporter クラスは、特定の型の進行状況の通知をレポートできます。 各 progress_reporter オブジェクトが、特定の非同期アクションまたは操作にバインドされます。 |
|
propagator_block クラスは、ソースでもありターゲットでもあるメッセージ ブロックの抽象基底クラスです。 source_block クラスと target_block クラスの両方の機能が組み合わされています。 |
|
ローカルのみのスピンを行う、ライター優先キュー ベースのリーダー ライター ロックです。 ロックはライターに先入れ先出し (FIFO: First In First Out) アクセスを許可し、ライターに連続的な負荷がかかる状況ではリーダーが処理を実行できなくします。 |
|
スケジュール グループの抽象化を表します。 スケジュール グループは、(別のグループに移動する前に同じグループ内の別のタスクを実行することで) 一時的に、または (同じ NUMA ノードまたは物理ソケットの同じグループ内の複数の項目を実行することにより) 空間的に、短い間隔でスケジュールするとメリットがある関連作業のセットを編成します。 |
|
同時実行ランタイム スケジューラの抽象化を表します。 |
|
このクラスは、現在のコンテキストにスケジューラがアタッチされている必要がある操作を実行するときにスケジューラがアタッチされていない場合にスローされる例外を表します。 |
|
このクラスは、同時実行ランタイムでクリティカル リソースを取得できないためにスローされる例外を表します。 |
|
このクラスは、同時実行ランタイムでワーカー実行コンテキストを作成できないためにスローされる例外を表します。 |
|
SchedulerPolicy クラスには、ポリシー要素ごとに 1 つずつ、スケジューラ インスタンスの動作を制御するキーと値のペアのセットが含まれています。 |
|
simple_partitioner クラスは、parallel_for によって反復処理される範囲の静的パーティション分割を表します。 パーティショナーは範囲をチャンクに分割します。各チャンクには、少なくともチャンク サイズによって指定された数のイテレーションが含まれます。 |
|
single_assignment メッセージング ブロックは、一度だけ書き込むことができる message を 1 つ格納できる、複数のターゲットと複数のソースを持つ順序付けられた propagator_block です。 |
|
single_link_registry オブジェクトは、単一のソース ブロックまたはターゲット ブロックのみを管理する network_link_registry です。 |
|
source_block クラスは、ソースのみのブロックの抽象基底クラスです。 このクラスには、基本的なリンク管理機能および一般的なエラー チェック機能が用意されています。 |
|
source_link_manager オブジェクトは、ISource ブロックへのメッセージング ブロック ネットワーク リンクを管理します。 |
|
static_partitioner クラスは、parallel_for によって反復処理される範囲の静的パーティション分割を表します。 パーティショナーは範囲をチャンクに分割します。チャンクの数は、基になるスケジューラが使用できるワーカーと同じ数にします。 |
|
structured_task_group クラスは、並列処理の高度に構造化されたコレクションを表します。 task_handle オブジェクトを使用して個々の並列タスクを structured_task_group のキューに配置し、それらのタスクが完了するまで待機するか、実行が完了する前にタスク グループを取り消すことができます。取り消すと、実行が開始されていないタスクはすべて中止されます。 |
|
target_block クラスは、基本的なリンク管理機能と、ターゲットのみのブロックのエラー チェック機能を実現する抽象基底クラスです。 |
|
並列パターン ライブラリ (PPL) task クラス。 task オブジェクトは、非同期的に、他のタスクと同時に実行できる処理、および同時実行ランタイムの並列アルゴリズムによって生成される並列処理を表します。 正常に終了した場合は、型 _ResultType の結果が生成されます。 型 task<void> のタスクでは結果が作成されません。 タスクは、他のタスクと関係なく待機および取り消しできます。 また、continuations(then)、および join(when_all) パターンと choice(when_any) パターンを使用して、他のタスクと共に構成することもできます。 |
|
このクラスは、現在のタスクを強制的に取り消すために PPL タスク レイヤーによってスローされる例外を表します。 また、取り消されたタスクに対して、task の get() メソッドによってもスローされます。 |
|
task_completion_event クラスを使用すると、条件が満たされるまで、または外部イベントに応答してタスクを開始するまで、タスクの実行を遅延できます。 |
|
task_continuation_context クラスを使用すると、継続する場所を指定できます。 このクラスは、Windows ストア アプリから使用する場合にのみ役に立ちます。 Windows ストア アプリを使用していない場合、タスク継続の実行コンテキストはランタイムによって決まり、構成できません。 |
|
task_group クラスは、待機または取り消しができる並列処理のコレクションを表します。 |
|
task_handle クラスは個々の並列作業項目を表します。 このクラスは、1 つの処理を実行するために必要な命令およびデータをカプセル化します。 |
|
タスクの作成に使用できるオプションを表します。 |
|
timer メッセージング ブロックは単一のターゲットを持つ source_block であり、指定された時間の経過後か、特定の間隔で、メッセージをターゲットに送信することができます。 |
|
transformer メッセージング ブロックは、単一のターゲットと複数のソースを持つ順序付けられた propagator_block であり、1 つの種類のメッセージを複数受け入れ、別の種類のメッセージを無制限に格納することができます。 |
|
unbounded_buffer メッセージング ブロックは、メッセージを無制限に格納することができる、複数のターゲットと複数のソースを持つ順序付けられた propagator_block です。 |
|
このクラスは、サポート外のオペレーティング システムが使用された場合にスローされる例外を表します。 |
構造体
名前 |
説明 |
---|---|
DispatchState 構造体は、状態を IExecutionContext::Dispatch メソッドに転送するために使用されます。 Dispatch メソッドが IExecutionContext インターフェイスで呼び出される状況を示します。 |
|
特定の仮想プロセッサで実行でき、協調的にコンテキストを切り替えることができる実行コンテキストへのインターフェイスです。 |
|
ハードウェア スレッドの抽象化です。 |
|
同時実行ランタイムのリソース マネージャーに対するインターフェイスです。 これは、スケジューラがリソース マネージャーと通信する際に使用されるインターフェイスです。 |
|
作業スケジューラの抽象化のインターフェイスです。 同時実行ランタイムのリソース マネージャーは、このインターフェイスを使用して作業スケジューラと通信します。 |
|
スケジューラは、このインターフェイスを使用して同時実行ランタイムのリソース マネージャーと通信して、リソース割り当てをネゴシエートします。 |
|
実行スレッドの抽象化です。 作成するスケジューラの SchedulerType ポリシー キーに応じて、リソース マネージャーは、通常の Win32 スレッドまたはユーザー モード スケジュール可能 (UMS: User-Mode Schedulable) スレッドによってサポートされるスレッド プロキシを許可します。 UMS スレッドは、Windows 7 以上のバージョンの 64 ビット オペレーティング システムでサポートされます。 |
|
リソース マネージャーで定義される実行リソースへのインターフェイスです。 |
|
リソース マネージャーで定義されるトポロジ ノードへのインターフェイスです。 ノードには 1 つ以上の実行リソースが含まれます。 |
|
UMS の完了リストを表します。 UMS スレッドがブロックされると、基になる仮想プロセッサ ルートでスケジュールする内容を決定するためにスケジューラで指定されているスケジュールのコンテキストがディスパッチされ、元のスレッドがブロックされます。 元のスレッドがブロックされない場合、オペレーション システムは、このインターフェイスからアクセスできる完了リストのキューにそれを配置します。 スケジューラは指定されたスケジュール コンテキスト、または作業を検索するその他の場所にある完了リストを照会できます。 |
|
同時実行ランタイムのリソース マネージャーによってユーザー モード スケジュール可能 (UMS) スレッドが渡される必要がある作業スケジューラの抽象化のインターフェイスです。 リソース マネージャーでは、このインターフェイスを使用して UMS スレッド スケジューラと通信します。 IUMSScheduler インターフェイスは IScheduler インターフェイスを継承します。 |
|
実行スレッドの抽象化です。 ユーザー モード スケジュール可能 (UMS) スレッドをスケジューラに付与するには、スケジューラ ポリシー要素 SchedulerKind の値を UmsThreadDefault に設定し、さらに IUMSScheduler インターフェイスを実装する必要があります。 UMS スレッドは、Windows 7 以上のバージョンの 64 ビット オペレーティング システムでのみサポートされます。 |
|
ブロックされ、スケジューラの指定されたスケジュール コンテキストに制御を戻すことをトリガーされたスレッド プロキシが、ブロック解除され、スケジュールできる状態であることを示す、リソース マネージャーからの通知を表します。 このインターフェイスは、GetContext メソッドから返される、スレッド プロキシの関連付けられた実行コンテキストが再スケジュールされると無効になります。 |
|
スレッド プロキシが実行できるハードウェア スレッドの抽象化です。 |
|
スケジューラ インターフェイス |
|
スケジューラへのポインターを表します。 このクラスによって、shared_ptr を使用して共有有効期間を指定できるように、または、生ポインターを使用して参照できるようにします。 |
列挙型
名前 |
説明 |
---|---|
agent の有効な状態。 |
|
エージェント ライブラリによって提供されるトレース機能を使用してトレースできるイベントの種類。 |
|
同時実行ランタイムによって提供されるトレース機能を使用してトレースできるイベントの種類。 |
|
イベントの種類のトレース フラグ。 |
|
コンテキストが存在するクリティカル領域の種類。 |
|
DynamicProgressFeedback ポリシーによって使用され、スケジューラのリソースのバランスを再調整する際の判断基準として、スケジューラから収集された統計情報に従うか、または IVirtualProcessorRoot インターフェイスの Activate メソッドおよび Deactivate メソッドの呼び出しによってアイドル状態との間で状態が変化する仮想プロセッサのみに基づくかを示します。 使用できるスケジューラ ポリシーの詳細については、「PolicyElementKey 列挙型」を参照してください。 |
|
join メッセージング ブロックの種類。 |
|
ブロックへの message オブジェクトの提供に対する有効な応答。 |
|
ポリシー キーは、スケジューラの動作をさまざまな側面から表します。 各ポリシー要素は、キーと値の組み合わせで表現されます。 スケジューラ ポリシーと、スケジューラに対するその影響の詳細については、「タスク スケジューラ (同時実行ランタイム)」を参照してください。 |
|
基になる実行コンテキスト用にスケジューラが利用するスレッドの種類を示すために、SchedulerKind ポリシーにより使用されます。 使用できるスケジューラ ポリシーの詳細については、「PolicyElementKey 列挙型」を参照してください。 |
|
スケジューラに使用されるスケジューリング アルゴリズムを記述するために、SchedulingProtocol ポリシーによって使用されます。 使用できるスケジューラ ポリシーの詳細については、「PolicyElementKey 列挙型」を参照してください。 |
|
あるスレッド プロキシから別のスレッド プロキシへの協調的なコンテキスト切り替えを実行するときに、スレッド プロキシの状態を示すために使用します。 |
|
task_group オブジェクトまたは structured_task_group オブジェクトの実行状態を示します。 この型の値は、タスク グループに対してスケジュールされたタスクが完了するのを待機している多数のメソッドによって返されます。 |
|
WinRTInitialization ポリシーによって使用され、Windows 8 以上のオペレーティング システムで実行されるアプリケーション用のスケジューラ スレッドで、Windows ランタイムを初期化するかどうか、またどのように初期化するかを表します。 使用できるスケジューラ ポリシーの詳細については、「PolicyElementKey 列挙型」を参照してください。 |
関数
名前 |
説明 |
---|---|
同時実行ランタイムのキャッシュ サブアロケータから、指定したサイズのメモリ ブロックを割り当てます。 |
|
オーバーロードされます。 ターゲット ブロックにデータを反映するタスクをスケジュールする非同期送信操作です。 |
|
現在実行中のタスクを取り消します。 この関数は、タスクの実行を中止して canceled 状態に遷移させるために、タスクの本体から呼び出すことができます。 is_task_cancellation_requested 関数に応じて使用できる一方で、単独で使用して、現在実行中のタスクの取り消しを開始することもできます。 task の本体以外では、この関数を呼び出すシナリオはサポートされません。 これを行うと、アプリケーションのクラッシュや停止など、定義されていない動作が発生します。 |
|
ユーザーが指定したラムダまたは関数オブジェクトに基づいて Windows ランタイムの非同期構造を作成します。 create_async の戻り値の型は、IAsyncAction^、IAsyncActionWithProgress<TProgress>^、IAsyncOperation<TResult>^、IAsyncOperationWithProgress<TResult, TProgress>^ のいずれかで、メソッドに渡されるラムダのシグネチャに基づいています。 |
|
オーバーロードされます。 PPL task オブジェクトを作成します。 create_task は、タスク コンストラクターを使用した任意の場所で使用できます。 タスクの作成中に auto キーワードが使用できるようになるため、これは参考用として用意されています。 |
|
同時実行ランタイムのリソース マネージャーのシングルトン インスタンスを表すインターフェイスを返します。 リソース マネージャーは、相互の連携を必要とするスケジューラにリソースを割り当てます。 |
|
同時実行ランタイムでのトレースを無効にします。 この関数は、ETW トレースが既定で未登録であるため推奨されません。 |
|
同時実行ランタイムでトレースを有効にします。 この関数は、ETW トレースが既定でオンであるため推奨されません。 |
|
以前に Alloc メソッドによって同時実行ランタイムのキャッシュ サブアロケータに割り当てられたメモリ ブロックを解放します。 |
|
IExecutionContext インターフェイスを実装する実行コンテキストに割り当てることのできる一意識別子を返します。 |
|
オペレーティング システムのバージョンを返します。 |
|
基になるシステム上のハードウェア スレッドの数を返します。 |
|
基になるシステム上の NUMA ノードまたはプロセッサ パッケージの数を返します。 |
|
IScheduler インターフェイスを実装するスケジューラに割り当てることができる一意識別子を返します。 |
|
取り消しの割り込みポイントを作成します。 この関数が呼び出されるコンテキストで取り消しが進行中の場合、現在実行中の並列処理を中止する内部例外がスローされます。 取り消しが進行中でない場合は、何も実行されません。 |
|
現在のコンテキストで現在インラインで実行されているタスク グループがアクティブなキャンセル処理中である (または間もなくキャンセル処理が開始される) かどうかを示す値を返します。 現在のコンテキストで現在インラインで実行されているタスク グループが存在しない場合は、false が返されます。 |
|
実行中のタスクが実行を取り消す要求を受け取ったかどうかを示す値を返します。 タスクがキャンセル トークンで作成された場合は、そのタスクで取り消しが要求され、トークンに関連付けられているトークン ソースは取り消されます。 |
|
オーバーロードされます。 オプションの Scheduler や ScheduleGroup、および 2 つ以上の入力ソースから choice メッセージング ブロックを構築します。 |
|
オーバーロードされます。 オプションの Scheduler や ScheduleGroup、および 2 つ以上の入力ソースから greedy multitype_join メッセージング ブロックを構築します。 |
|
オーバーロードされます。 オプションの Scheduler や ScheduleGroup、および 2 つ以上の入力ソースから non_greedy multitype_join メッセージング ブロックを構築します。 |
|
task_handle オブジェクトを作成するためのファクトリ メソッドです。 |
|
オーバーロードされます。 指定された範囲の要素を、降順以外の順序、または二項述語で指定された順序の基準に従って、並列に配置します。 この関数は、比較ベースで不安定なインプレース並べ替えという点で std::sort と意味が同じです。ただし、O(n) 追加スペースが必要で、並べ替えている要素を既定で初期化する必要があります。 |
|
オーバーロードされます。 parallel_for は、一定の範囲のインデックスを反復処理し、各反復処理で、ユーザーが指定した関数を並列で実行します。 |
|
オーバーロードされます。 parallel_for_each は、指定された関数を範囲内の各要素に並列で適用します。 意味的には std 名前空間の for_each 関数と同等ですが、要素に対する反復処理が並列で行われる点、および反復処理の順序が指定されていない点が異なります。 引数 _Func は、operator()(T) の形式の関数呼び出し演算子をサポートしている必要があります (T パラメーターは反復処理するコンテナーの項目の種類を示します)。 |
|
オーバーロードされます。 パラメーターとして渡された関数オブジェクトを並列実行し、実行が完了するまでブロックします。 各関数オブジェクトは、ラムダ式、関数へのポインター、またはシグネチャ void operator()() を持つ関数呼び出し演算子をサポートするオブジェクトになります。 |
|
オーバーロードされます。 基数並べ替えアルゴリズムを使用して、指定された範囲の要素を降順以外の順序で配置します。 これは安定した並べ替え関数で、符号なし整数 (キーなど) に分類されるように要素を投影する投射関数を必要とします。 並べ替えられる要素には既定の初期化が必要です。 |
|
オーバーロードされます。 連続する部分的な合計を計算することで、指定された範囲のすべての要素の合計を計算します。または、指定された二項演算を使用して取得した、合計以外の連続する部分的な結果を並列で計算します。 parallel_reduce は std::accumulate と意味が同じです。ただし、結合のための二項演算と、初期値ではなく ID 値が必要です。 |
|
オーバーロードされます。 指定された範囲の要素を、降順以外の順序、または二項述語で指定された順序の基準に従って、並列に配置します。 この関数は、比較ベースで不安定なインプレース並べ替えという点で std::sort と意味が同じです。 |
|
オーバーロードされます。 指定された関数オブジェクトをソース範囲内の各要素、または 2 つのソース範囲内の要素のペアに適用し、関数オブジェクトの戻り値をコピー先の範囲に並列でコピーします。 この関数は、意味的には std::transform と同じです。 |
|
オーバーロードされます。 receive の一般的な実装です。これにより、コンテキストで 1 つのソースからのデータを待機し、受け取った値をフィルター処理できます。 |
|
関数オブジェクトを、指定されたキャンセル トークンのコンテキストですばやく同期的に実行します。 |
|
オーバーロードされます。 ターゲットがメッセージを受け入れるか拒否するまで待機する同期送信操作です。 |
|
オーバーロードされます。 同時実行ランタイムの内部ワーカー スレッドが使用する実行リソースを、指定された関係セットに制限します。 このメソッドの呼び出しは、リソース マネージャーの作成前、または 2 つのリソース マネージャーの有効期間の間のみ有効です。 これは、呼び出し時にリソース マネージャーが存在しない限り複数回呼び出すことができます。 関係の制限が設定されたら、次の有効な set_task_execution_resources メソッド呼び出しまで保持されます。 指定された関係マスクは、プロセス関係マスクのサブセットである必要はありません。 プロセス関係は必要に応じて更新されます。 |
|
2 つの concurrent_vector オブジェクトの要素を交換します。 |
|
指定された名前を、ETW トレースのメッセージ ブロックまたはエージェントに関連付けます。 |
|
オーバーロードされます。 try-receive の一般的な実装です。これにより、コンテキストで 1 つのソースに対してのみデータの検索を実行し、受け取った値をフィルター処理できます。 データが準備されていない場合、メソッドは false を返します。 |
|
指定した時間だけ現在のコンテキストを停止します。 |
|
引数として指定されたすべてのタスクが正常に完了したときに正常に完了するタスクを作成します。 |
|
オーバーロードされます。 引数として指定されたいずれかのタスクが正常に完了したときに正常に完了するタスクを作成します。 |
演算子
名前 |
説明 |
---|---|
演算子の左側の concurrent_vector オブジェクトが右側の concurrent_vector オブジェクトと等しくないかどうかを調べます。 |
|
オーバーロードされます。 引数として指定された両方のタスクが正常に完了したときに正常に完了するタスクを作成します。 |
|
オーバーロードされます。 引数として指定されたいずれかのタスクが正常に完了したときに正常に完了するタスクを作成します。 |
|
演算子の左側の concurrent_vector オブジェクトが右側の concurrent_vector オブジェクトより小さいかどうかを調べます。 |
|
演算子の左側の concurrent_vector オブジェクトが右側の concurrent_vector オブジェクト以下かどうかを調べます。 |
|
演算子の左側の concurrent_vector オブジェクトが右側の concurrent_vector オブジェクトと等しいかどうかを調べます。 |
|
演算子の左側の concurrent_vector オブジェクトが右側の concurrent_vector オブジェクトより大きいかどうかを調べます。 |
|
演算子の左側の concurrent_vector オブジェクトが右側の concurrent_vector オブジェクト以上であるかどうかを調べます。 |
定数
名前 |
説明 |
---|---|
同時実行ランタイムのエージェント ライブラリによって生成される ETW イベントを表すカテゴリの GUID ({B9B5B78C-0713-4898-A21A-C67949DCED07})。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、作業またはタスクに直接関係する ETW イベントを表すカテゴリの GUID。 |
|
同時実行ランタイムの ETW プロバイダーの GUID。 |
|
Visual Studio 2010 で定義されているリソース マネージャー インターフェイスのサポートを示します。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、別のカテゴリで具体的に説明されていない ETW イベントを表すカテゴリの GUID。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、コンテキストに直接関係する ETW イベントを表すカテゴリの GUID。 |
|
待機がタイムアウトしないことを示す値。 |
|
待機がタイムアウトしたことを示す値。 |
|
スケジューラのすべてのコンテキストのスレッド優先順位が、スケジューラを作成したスレッドの優先順位と同じになることを示す ContextPriority ポリシー キーの特別な値。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、ロックに直接関係する ETW イベントを表すカテゴリの GUID。 |
|
MinConcurrency ポリシー キーおよび MaxConcurrency ポリシー キーの特殊な値。 他の制約が存在しない場合、既定でコンピューター上のハードウェア スレッドの数になります。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、parallel_for_each 関数の使用に直接関係する ETW イベントを表すカテゴリの GUID。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、parallel_for 関数の使用に直接関係する ETW イベントを表すカテゴリの GUID。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、parallel_invoke 関数の使用に直接関係する ETW イベントを表すカテゴリの GUID。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、リソース マネージャーに直接関係する ETW イベントを表すカテゴリの GUID。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、スケジュール グループに直接関係する ETW イベントを表すカテゴリの GUID。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、スケジューラ アクティビティに直接関係する ETW イベントを表すカテゴリの GUID。 |
|
同時実行ランタイムによって生成される ETW イベントのうち、仮想プロセッサに直接関係する ETW イベントを表すカテゴリの GUID。 |
必要条件
ヘッダー: agents.h、concrt.h、concrtrm.h、concurrent_priority_queue.h、concurrent_queue.h、concurrent_unordered_map.h、concurrent_unordered_set.h、concurrent_vector.h、internal_concurrent_hash.h、internal_split_ordered_list.h、ppl.h、pplcancellation_token.h、pplconcrt.h、pplinterface.h、ppltasks.h