task_handle クラス
task_handle クラスは個々の並列作業項目を表します。 このクラスは、1 つの処理を実行するために必要な命令およびデータをカプセル化します。
template<
typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;
パラメーター
- _Function
task_handle オブジェクトで表される処理を実行するために呼び出される関数オブジェクトの種類。
メンバー
パブリック コンストラクター
名前 |
説明 |
---|---|
新しい task_handle オブジェクトを構築します。 タスクの処理は、コンストラクターのパラメーターとして指定された関数を呼び出すことで実行されます。 |
|
task_handle オブジェクトを破棄します。 |
パブリック演算子
名前 |
説明 |
---|---|
タスク ハンドルの処理を実行するためにランタイムによって呼び出される関数呼び出し演算子。 |
解説
task_handle オブジェクトを structured_task_group オブジェクトと、または一般的な task_group オブジェクトと組み合わせて使用して、処理を並列タスクに分解できます。 詳細については、「タスクの並列化 (同時実行ランタイム)」を参照してください。
作成された task_handle オブジェクトの有効期間は、同時実行ランタイムで必要とされなくなるまで、task_handle オブジェクトの作成元によって管理されます。 通常、これは、配置先のキューがある task_group または structured_task_group の wait メソッドまたは run_and_wait メソッドが呼び出されるまで、task_handle オブジェクトが破棄されないことを意味します。
task_handle オブジェクトは、通常、C++ のラムダと組み合わせて使用します。 ラムダの実際の型はわからないため、通常、make_task 関数を使用して task_handle オブジェクトを作成します。
task_handle オブジェクトに渡される処理関数のコピーは、ランタイムによって作成されます。 そのため、task_handle オブジェクトに渡した関数オブジェクトで発生した状態の変化は、その関数オブジェクトのコピーには反映されません。
継承階層
_Chore
_AllocBase
_UnrealizedChore
必要条件
ヘッダー: ppl.h
名前空間: Concurrency
参照
参照
structured_task_group::run メソッド
structured_task_group::wait メソッド