structured_task_group::run 方法

structured_task_group 对象上安排轻量任务。 调用方管理 _Task_handle 形参中传递的 task_handle 对象的生存期。 采用参数 _Placement 的版本生成任务。偏重在执行该参数指定的位置。

template<
   class _Function
>
void run(
   task_handle<_Function>& _Task_handle
);

template<
   class _Function
>
void run(
   task_handle<_Function>& _Task_handle,
   location& _Placement
);

参数

  • _Function
    将调用的函数对象类型,以执行任务句柄的主体。

  • _Task_handle
    正在计划的工作的句柄。 请注意调用方要负责此对象的生存期。 运行时将继续期望其存留,直至 waitrun_and_wait 方法已在该 structured_task_group 对象上调用。

  • _Placement
    为 _Task_handle 参数表示的任务应执行的位置的引用。

备注

运行时创建您传递给此方法的工作函数副本。 您传递给此方法的函数对象中发生的任何状态变更均不会出现在该函数对象的副本中。

如果 structured_task_group 因异常产生的堆栈展开而进行析构,您不必保证已对 waitrun_and_wait 方法进行调用。 在此情况下,析构函数将相应地取消,并等待 _Task_handle 形参表示的任务完成。

如果 _Task_handle 参数给予的句柄已通过 run 方法计划到任务组对象上并且该任务组上不存在对于 waitrun_and_wait 方法的中间调用,将引发 invalid_multiple_scheduling 异常。

要求

**标头:**ppl.h

命名空间: 并发

请参见

参考

structured_task_group 类

structured_task_group::wait 方法

structured_task_group::run_and_wait 方法

location 类

概念

任务并行(并发运行时)