Класс ScheduleGroup

Представляет абстракцию для группы расписаний. Группы расписаний организуют набор связанных работ, которые выигрывают от планирования в непосредственной близости друг от друга: во времени (путем выполнения другой задачи в той же группе перед перемещением в другую группу) или в пространстве (путем выполнения нескольких элементов в той же группе в том же узле NUMA или физическом сокете).

Синтаксис

class ScheduleGroup;

Участники

Защищенные конструкторы

Имя Описание
Деструктор ~ScheduleGroup

Открытые методы

Имя Описание
Id Возвращает идентификатор группы расписаний, уникальной в планировщике, к которой принадлежит группа.
Ссылка Увеличивает значение счетчика ссылок группы расписания.
Выпуск Уменьшает значение счетчика ссылок группы планировщика.
ScheduleTask Планирует задачу с легким весом в группе расписаний.

Иерархия наследования

ScheduleGroup

Требования

Заголовок: concrt.h

Пространство имен: concurrency

Артикул

Возвращает идентификатор группы расписаний, уникальной в планировщике, к которой принадлежит группа.

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
Указатель на функцию, выполняемую для выполнения задачи легкого веса.

_Данных
Указатель void на данные, которые будут передаваться в качестве параметра в текст задачи.

Замечания

ScheduleTask Вызов метода неявно помещает счетчик ссылок в группу расписаний, которая удаляется средой выполнения в соответствующее время после выполнения задачи.

См. также

Пространство имен concurrency
Класс CurrentScheduler
Класс Scheduler
Планировщик заданий