Класс 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
Планировщик заданий