task_handle クラス
task_handle
クラスは個々の並列作業項目を表します。 このクラスは、1 つの処理を実行するために必要な命令およびデータをカプセル化します。
構文
template<
typename _Function
>
class task_handle : public ::Concurrency::details::_UnrealizedChore;
パラメーター
_Function
task_handle
オブジェクトによって表される作業を実行するために呼び出される関数オブジェクトの型。
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
task_handle | 新しい task_handle オブジェクトを構築します。 タスクの作業は、コンストラクターのパラメーターとして指定された関数を呼び出すことで実行されます。 |
~task_handle デストラクター | task_handle オブジェクトを破棄します。 |
パブリック演算子
名前 | 説明 |
---|---|
operator() | タスク ハンドルの仕事を実行するためにランタイムが呼び出す関数呼び出し演算子。 |
解説
task_handle
オブジェクトは structured_task_group
またはより一般的な task_group
オブジェクトと組み合わせて、作業を並列タスクに分解するために使用することができます。 詳しくは、タスクの並列処理に関するページを参照してください。
task_handle
オブジェクトの作成者は、作成された task_handle
オブジェクトの有効期間を、それが同時実行ランタイムによって必要とされなくなるまで維持する責任があることに注意してください。 通常、これは task_handle
オブジェクトがキューに入れられた task_group
または structured_task_group
の wait
または run_and_wait
メソッドのいずれかが呼び出されるまで破棄してはならないことを意味します。
task_handle
オブジェクトは、通常 C++ のラムダと組み合わせて使用されます。 ラムダの真の型は分からないので、make_task 関数は通常 task_handle
オブジェクトを作成するために使用されます。
ランタイムは、task_handle
オブジェクトに渡す作業関数のコピーを作成します。 したがって、task_handle
オブジェクトに渡す関数オブジェクトで発生する状態の変更は、その関数オブジェクトのコピーには表示されません。
継承階層
task_handle
要件
ヘッダー: ppl.h
名前空間: concurrency
operator()
タスク ハンドルの仕事を実行するためにランタイムが呼び出す関数呼び出し演算子。
void operator()() const;
task_handle
新しい task_handle
オブジェクトを構築します。 タスクの作業は、コンストラクターのパラメーターとして指定された関数を呼び出すことで実行されます。
task_handle(const _Function& _Func);
パラメーター
_Func
task_handle
オブジェクトによって表される作業を実行するために呼び出される関数。 ラムダ ファンクター、関数へのポインター、またはシグネチャ void operator()()
を備えた関数呼び出し演算子のバージョンをサポートする任意のオブジェクトを指定できます。
解説
ランタイムは、このコンストラクターに渡す作業関数のコピーを作成します。 したがって、task_handle
オブジェクトに渡す関数オブジェクトで発生する状態の変更は、その関数オブジェクトのコピーには表示されません。
~task_handle
task_handle
オブジェクトを破棄します。
~task_handle();