Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Представляет абстракцию для группы графиков. Группы расписаний организуют набор связанных работ, которые выигрывают от планирования в непосредственной близости друг от друга: во времени (путем выполнения другой задачи в той же группе перед перемещением в другую группу) или в пространстве (путем выполнения нескольких элементов в той же группе в том же узле NUMA или физическом сокете).
Синтаксис
class ScheduleGroup;
Участники
Защищенные конструкторы
| Имя | Описание |
|---|---|
| Деструктор ~ScheduleGroup |
Открытые методы
| Имя | Описание |
|---|---|
| Id | Возвращает идентификатор для группы расписаний, который уникален в рамках планировщика, к которому принадлежит эта группа. |
| Справочные материалы | Увеличивает значение счетчика ссылок группы расписания. |
| Выпуск | Уменьшает значение счетчика ссылок группы планировщика. |
| ScheduleTask | Планирует легкую задачу в группе расписания. |
Иерархия наследования
ScheduleGroup
Требования
Заголовок: concrt.h
Пространство имен: конкурентность
Артикул
Возвращает идентификатор группы расписаний, уникальной в планировщике, к которой принадлежит группа.
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();
Запланированная задача
Планирует легкую задачу в группе расписания.
virtual void ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data) = 0;
Параметры
_Proc
Указатель на функцию, выполняемую для выполнения основной части легковесной задачи.
_Данные
Указатель void на данные, которые будут передаваться в качестве параметра в тело задачи.
Замечания
Вызов метода ScheduleTask неявным образом создает счетчик ссылок для группы расписаний, который удаляется средой исполнения в соответствующее время после выполнения задачи.
См. также
Пространство имен параллелизм
Класс CurrentScheduler
Класс Scheduler
Планировщик заданий