structured_task_group::run メソッド

structured_task_group オブジェクトでタスクをスケジュールします。 _Task_handle パラメーターに渡される task_handle オブジェクトの有効期間は、呼び出し元によって管理されます。

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

パラメーター

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

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

解説

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

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

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

必要条件

ヘッダー: ppl.h

名前空間: Concurrency

参照

参照

structured_task_group クラス

structured_task_group::wait メソッド

概念

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

その他の技術情報

structured_task_group::run_and_wait メソッド