次の方法で共有


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_groupwait または 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();

関連項目

コンカレンシー名前空間
task_group クラス
structured_task_group クラス