task::task 构造函数 (C++ REST SDK)
构造 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 等方法时将引发 invalid_argument 异常。
通过 task_completion_event 创建的任务将在设置任务完成事件后完成(并安排好其延续)。
采用取消标记的构造函数的版本可创建能够通过使用提供标记的 cancellation_token_source 取消的任务。 创建时没有使用取消标记的任务不可取消。
通过 Windows::Foundation::IAsyncInfo 接口或返回 IAsyncInfo 接口的 lambda 创建的任务在封闭的 Windows 运行时异步操作或行为完成时达到其终止状态。 同样,通过返回 task<result_type> 的 lamda 创建的任务在内部任务达到其终止状态时而非 lamda 返回时达到其终止状态。
task 行为与智能指针的行为类似,可按值安全传递。 它可以由多个线程访问,而无需锁定。
采用 Windows::Foundation::IAsyncInfo 接口或返回此类接口的 lambda 的构造函数重载仅可用于 Windows 应用商店应用。
有关详细信息,请参阅任务并行(并发运行时)。
要求
**标头:**pplxtasks.h
**命名空间:**pplx