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_typetask<result_type> 的变量或 Windows 应用商店应用中的 Windows::Foundation::IAsyncInfo。

  • _TaskOptions
    任务选项包括取消标记、计划程序等

  • _Other
    task 对象。

备注

task 的默认构造函数仅用于允许在容器中使用任务。 只有在分配有效任务后才能使用默认的构造任务。 对默认构造任务调用 getwaitthen 等方法时将引发 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

请参见

参考

task 类