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 の既定のコンストラクターは、タスクをコンテナー内で使用できるようにすることのみを目的としています。 構築された既定のタスクは、有効なタスクを割り当てるまで使用できません。 get、wait、then などのメソッドは、構築された既定のタスクで呼び出されると、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