次の方法で共有


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::~task_handle デストラクター

task_handle オブジェクトを破棄します。

パブリック演算子

名前

説明

task_handle::operator() 演算子

タスク ハンドルの処理を実行するためにランタイムによって呼び出される関数呼び出し演算子。

解説

task_handle オブジェクトを structured_task_group オブジェクトと、または一般的な task_group オブジェクトと組み合わせて使用して、処理を並列タスクに分解できます。 詳細については、「タスクの並列化 (同時実行ランタイム)」を参照してください。

作成された task_handle オブジェクトの有効期間は、同時実行ランタイムで必要とされなくなるまで、task_handle オブジェクトの作成元によって管理されます。 通常、これは、配置先のキューがある task_group または structured_task_groupwait メソッドまたは run_and_wait メソッドが呼び出されるまで、task_handle オブジェクトが破棄されないことを意味します。

task_handle オブジェクトは、通常、C++ のラムダと組み合わせて使用します。 ラムダの実際の型はわからないため、通常、make_task 関数を使用して task_handle オブジェクトを作成します。

task_handle オブジェクトに渡される処理関数のコピーは、ランタイムによって作成されます。 そのため、task_handle オブジェクトに渡した関数オブジェクトで発生した状態の変化は、その関数オブジェクトのコピーには反映されません。

継承階層

_Chore

_AllocBase

_UnrealizedChore

task_handle

必要条件

ヘッダー: ppl.h

名前空間: Concurrency

参照

参照

Concurrency 名前空間

task_group クラス

structured_task_group クラス

task_group::run メソッド

task_group::wait メソッド

structured_task_group::run メソッド

structured_task_group::wait メソッド

その他の技術情報

make_task 関数

task_group::run_and_wait メソッド

structured_task_group::run_and_wait メソッド