ScheduleGroup 类
表示计划组的抽象。 计划组整理受益于在时间上(通过在移动到另一个组之前执行同一个组中的另一个任务)或空间上(通过在同一 NUMA 节点或物理套接字上执行同一个组内的多个项)紧密计划在一起的一组相关工作。
语法
class ScheduleGroup;
成员
受保护构造函数
名称 | 描述 |
---|---|
~ScheduleGroup 析构函数 |
公共方法
名称 | 说明 |
---|---|
Id | 返回在组所属的计划程序内唯一的计划组的标识符。 |
引用 | 递增计划组的引用计数。 |
版本 | 递减计划程序组的引用计数。 |
ScheduleTask | 在计划组中计划轻量级任务。 |
继承层次结构
ScheduleGroup
要求
标头:concrt.h
命名空间: 并发
Id
返回在组所属的计划程序内唯一的计划组的标识符。
virtual unsigned int Id() const = 0;
返回值
在组所属的计划程序内唯一的计划组的标识符。
运算符 delete
释放对对象的所有外部引用后,运行时将在内部销毁 ScheduleGroup
对象。 不能显式删除它。
void operator delete(
void* _PObject);
void operator delete(
void* _PObject,
int,
const char *,
int);
参数
_PObject
指向要删除的对象的指针。
参考
递增计划组的引用计数。
virtual unsigned int Reference() = 0;
返回值
新递增的引用计数。
注解
这通常用于管理组合计划组的生存期。 当计划组的引用计数降至零时,运行时将删除该计划组。 使用 CurrentScheduler::CreateScheduleGroup 方法或 Scheduler::CreateScheduleGroup 方法创建的计划组以引用计数一开始。
发布
递减计划程序组的引用计数。
virtual unsigned int Release() = 0;
返回值
新递减的引用计数。
备注
这通常用于管理组合计划组的生存期。 当计划组的引用计数降至零时,运行时将删除该计划组。 调用 Release
方法特定次数来移除创建引用数和使用 Reference
方法放置的任何其他引用后,您将无法进一步使用计划组。 这样做将导致未定义的行为。
计划组与特定的计划程序实例相关联。 必须确保对于计划组的所有引用都在所有对计划程序的引用释放之前释放,因为后者可能导致计划程序破坏。 不这样做会导致未定义的行为。
~ScheduleGroup
virtual ~ScheduleGroup();
ScheduleTask
在计划组中计划轻量级任务。
virtual void ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data) = 0;
参数
_Proc
指向要执行的函数的指针,用于执行轻量级任务的正文。
_Data
指向作为参数传递给任务正文的数据的 void 指针。
注解
调用 ScheduleTask
方法会隐式地将引用计数放在运行时在任务执行后的适当时间删除的计划组上。