构造 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 应用商店应用程序中的任务,则这可能是 lambda、函数对象、 task_completion_event<result_type> 对象,或 Windows::Foundation::IAsyncInfo。 Lambda 或函数对象应为等效于 std::function<X(void)> 的类型,其中 X 可以是类型 result_type、task<result_type> 或 Windows 应用商店应用程序中的 Windows::Foundation::IAsyncInfo 的类型变量。_TaskOptions
该任务选项包括取消标记、计划程序等_Other
源 task 对象。
备注
task 的默认构造函数仅用于允许在容器中使用任务。 分配有效任务后才能使用默认的构造任务。 get、wait 或 then 等方法在默认构建任务被调用时将引发无效参数异常。
从 task_completion_event 创建的任务将在设置好任务完成事件时得以完成(并安排好延续)。
采用取消标记构造函数的版本可创建能够通过使用提供标记的 cancellation_token_source 取消的任务。 如果创建时没有取消标记,则任务不可取消。
从返回 IAsyncInfo 接口的 Windows::Foundation::IAsyncInfo 接口或 lambda 中创建的任务在封闭的 Windows 运行时同步操作完成时到达其最终状态。 同样,以 lamda 创建的任务在内部任务达到最终状态时,而非 lamda 返回时,返回达到其最终状态的 task<result_type>。
task 行为与智能指针的行为类似,可按值安全传递。 它可以由多个线程访问,而无需锁定。
构造函数承载 Windows::Foundation::IAsyncInfo 接口或接口等 lambda 返回的重载仅对 Windows 应用商店应用程序可用。
有关详细信息,请参阅 任务并行(并发运行时)。
要求
**标头:**ppltasks.h
**命名空间:**并发