次の方法で共有


structured_task_group::run メソッド

structured_task_group オブジェクトでタスクをスケジュールします。_Task_handle パラメーターに渡される task_handle オブジェクトの有効期間は、呼び出し元によって管理されます。パラメーター _Placement を受け取るバージョンと、そのパラメーターで指定された場所に実装するようにバイアス タスクが発生します。

template<
   class _Function
>
void run(
   task_handle<_Function>& _Task_handle
);

template<
   class _Function
>
void run(
   task_handle<_Function>& _Task_handle,
   location& _Placement
);

パラメーター

  • _Function
    タスク ハンドルの本体を実行するために呼び出される関数オブジェクトの型。

  • _Task_handle
    スケジュールする作業を識別するハンドル。呼び出し元はこのオブジェクトの有効期間を管理します。ランタイムは、引き続き wait メソッドまたは run_and_wait メソッドがこの structured_task_group オブジェクトで呼び出されるまでオブジェクトが持続すると見なします。

  • _Placement
    _Task_handle パラメーターが表すタスクが実行する必要がある場所への参照。

解説

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

例外からのスタック アンワインドの結果として structured_task_group が破棄される場合は、事前に wait メソッドまたは run_and_wait メソッドの呼び出しが行われたことを保証する必要はありません。その場合、デストラクターは適切に取り消し処理を行い、_Task_handle パラメーターで表されるタスクが完了するのを待ちます。

_Task_handle パラメーターによって指定されたタスク ハンドルが run メソッドを介して既にタスク グループ オブジェクトにスケジュールされていて、このタスク グループで wait メソッドまたは run_and_wait メソッドに対する中間の呼び出しがない場合、invalid_multiple_scheduling 例外がスローされます。

必要条件

ヘッダー: ppl.h

名前空間: の同時実行

参照

関連項目

structured_task_group クラス

structured_task_group::wait メソッド

structured_task_group::run_and_wait メソッド

location クラス

概念

タスクの並列化 (同時実行ランタイム)