task_group 类

task_group 类表示可以等待或取消的并行工作集合。

class task_group;

成员

公共构造函数

Name

说明

task_group::task_group 构造函数

构造新的 task_group 对象。

task_group::~task_group 析构函数

销毁 task_group 对象。 在析构函数执行之前,期望在对象上调用 waitrun_and_wait 方法,除非由于异常析构函数作为堆栈展开的结果执行。

公共方法

Name

说明

task_group::cancel 方法

尽最大努力尝试取消位于该任务组的工作的子树。 如果可能,任务组上每个计划的任务将传递性取消。

task_group::is_canceling 方法

通知调用方任务组当前是否正在取消中。 这不一定表示 cancel 方法会在 task_group 对象上调用(尽管这样肯定会让该方法返回 true)。 它可能是这种情况:task_group 对象正在执行内联,而工作树上部的任务组已被取消。 例如,在运行时可以提前确定取消将流过 task_group 对象的情况下,也将返回 true

task_group::run 方法

已重载。 在 task_group 对象上安排轻量任务。 如果将 task_handle 对象作为参数传递给 run,则调用方将负责管理 task_handle 对象的生存期。 将函数对象作为参数引用的方法版本,涉及运行时内的堆分配,可能比使用引用 task_handle 对象的版本较差。

task_group::run_and_wait 方法

已重载。 在 task_group 对象的帮助下安排任务在调用上下文上运行内联来获取完全取消支持。 该函数等待直到在 task_group 对象上的所有工作都已完成或取消。 如果将 task_handle 对象作为参数传递给 run_and_wait,则调用方将负责管理 task_handle 对象的生存期。

task_group::wait 方法

一直等待到在 task_group 对象上的所有工作都已完成或取消。

备注

与严重受限的 structured_task_group 类不同,将更通常地构建 task_group 类。 它不具有任何由 structured_task_group 描述的限制。 task_group 对象可在线程中以任意形式安全地使用。 对于执行少量工作的任务,task_group 构造的缺点在于它可能不如 structured_task_group 构造表现得好。

有关更多信息,请参见 任务并行(并发运行时)

继承层次结构

task_group

要求

**标头:**ppl.h

命名空间: 并发

请参见

参考

Concurrency 命名空间

structured_task_group 类

task_handle 类