次の方法で共有


task::task コンストラクター

task オブジェクトを構築します。

task();

template<
   typename _Ty
>
__declspec(
   noinline
) explicit task(_Ty _Param);

template<
   typename _Ty
>
__declspec(
   noinline
) explicit task(_Ty _Param, const task_options& _TaskOptions);

task(
   const task& _Other
);

task(
   task&& _Other
);

パラメーター

  • _Ty
    パラメーターの型。これに基づいてタスクが構築されます。

  • _Param
    パラメーター。これに基づいてタスクが構築されます。 Windows ストア アプリでタスクを使用する場合、ラムダ、関数オブジェクト、task_completion_event<result_type> オブジェクト、または Windows::Foundation::IAsyncInfo を指定できます。 ラムダまたは関数オブジェクトは、std::function<X(void)> と同等の型にする必要があります。Windows ストア アプリの場合、この X には、型 result_type の変数、task<result_type>、または Windows::Foundation::IAsyncInfo を指定できます。

  • _TaskOptions
    タスク オプションには、キャンセル トークン、スケジューラなどがあります。

  • _Other
    ソース task オブジェクト。

解説

task の既定のコンストラクターは、タスクをコンテナー内で使用できるようにすることのみを目的としています。 構築された既定のタスクは、有効なタスクを割り当てるまで使用できません。 getwaitthen などのメソッドは、構築された既定のタスクで呼び出されると、invalid_argument 例外をスローします。

task_completion_event から作成されたタスクは、タスクの完了イベントが設定されたときに完了します (その後で継続がスケジュールされます)。

キャンセル トークンを使用するバージョンのコンストラクターは、トークンの取得元となる cancellation_token_source を使用して取り消すことができるタスクを作成します。 キャンセル トークンを使用せずに作成されたタスクは、取り消すことはできません。

Windows::Foundation::IAsyncInfo インターフェイスまたは IAsyncInfo インターフェイスを返すラムダから作成されたタスクは、取り込まれている Windows ランタイムの非同期操作または非同期アクションが完了すると、終了状態になります。 同様に、task<result_type> を返すラムダから作成されたタスクは、内側のタスクが終了状態になったとき (ラムダがその状態を返すときではありません)、終了状態になります。

task は、スマート ポインターのように動作し、安全に値渡しされます。 この task には、複数のスレッドからアクセスできます。ロックする必要はありません。

Windows::Foundation::IAsyncInfo インターフェイスまたはそのようなインターフェイスを返すラムダを使用するコンストラクターのオーバーロードは、Windows ストア アプリでのみ使用できます。

詳細については、「タスクの並列化 (同時実行ランタイム)」を参照してください。

必要条件

ヘッダー: ppltasks.h

名前空間: concurrency

参照

関連項目

task クラス (同時実行ランタイム)