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 应用商店应用程序中的任务,则这可能是 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 等方法在默认构建任务被调用时将引发无效参数异常。

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

**命名空间:**并发

请参见

参考

task 类(并发运行时)