Поделиться через


Класс SchedulerPolicy

Класс SchedulerPolicy содержит набор пар «ключ — значение» по одной для каждого элемента политики, управляющего поведением экземпляра планировщика.

Синтаксис

class SchedulerPolicy;

Участники

Открытые конструкторы

Имя Описание
SchedulerPolicy Перегружен. Создает новую политику планировщика и заполняет ее значениями для ключей политики, поддерживаемых планировщиками среды выполнения Concurrency Runtime и Resource Manager.
Деструктор ~SchedulerPolicy Удаляет политику планирования.

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

Имя Описание
GetPolicyValue Извлекает значение ключа политики, предоставленного key в качестве параметра.
SetConcurrencyLimits Одновременно задает политики MinConcurrency и MaxConcurrency для объекта SchedulerPolicy.
SetPolicyValue Задает значение ключа политики, предоставленного в качестве key параметра, и возвращает старое значение.

Открытые операторы

Имя Описание
operator= Назначает политику планировщика из другой политики планировщика.

Замечания

Дополнительные сведения о политиках, которые можно контролировать с помощью SchedulerPolicy класса, см. в разделе PolicyElementKey.

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

SchedulerPolicy

Требования

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

Пространство имен: конкурентность

GetPolicyValue

Извлекает значение ключа политики, предоставленного key в качестве параметра.

unsigned int GetPolicyValue(PolicyElementKey key) const;

Параметры

key
Ключ политики для получения значения.

Возвращаемое значение

Если ключ, указанный параметром key, поддерживается, значение политики для ключа, приведенного к unsigned int.

Замечания

Метод выбрасывает invalid_scheduler_policy_key для недопустимого ключа политики.

operator=

Назначает политику планировщика из другой политики планировщика.

SchedulerPolicy& operator= (const SchedulerPolicy& _RhsPolicy);

Параметры

_RhsPolicy
Политика, которую нужно назначить для этой политики.

Возвращаемое значение

Ссылка на политику планировщика.

Замечания

Часто наиболее удобным способом для определения новой политики планировщика является копирование существующей политики и изменение ее методами SetPolicyValue или SetConcurrencyLimits.

SchedulerPolicy

Создает новую политику планировщика и заполняет ее значениями для ключей политики, поддерживаемых планировщиками среды выполнения Concurrency Runtime и Resource Manager.

SchedulerPolicy();

SchedulerPolicy(
    size_t _PolicyKeyCount,
...);

SchedulerPolicy(
    const SchedulerPolicy& _SrcPolicy);

Параметры

_PolicyKeyCount
Количество пар «ключ-значение», следующих за параметром _PolicyKeyCount.

_SrcPolicy
Исходная политика для копирования.

Замечания

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

Второй конструктор создает новую политику планировщика, использующую инициализацию через именованные параметры. Значения после параметра _PolicyKeyCount предоставляются в виде пар ключ/значение. Любой ключ политики, который не указан в этом конструкторе, будет иметь значение по умолчанию. Этот конструктор может вызывать исключения invalid_scheduler_policy_key, invalid_scheduler_policy_value или invalid_scheduler_policy_thread_specification.

Третий конструктор — это конструктор копирования. Часто наиболее удобным способом для определения новой политики планировщика является копирование существующей политики и изменение ее методами SetPolicyValue или SetConcurrencyLimits.

~SchedulerPolicy

Удаляет политику планирования.

~SchedulerPolicy();

УстановитьПределыПараллелизма

Одновременно задает политики MinConcurrency и MaxConcurrency для объекта SchedulerPolicy.

void SetConcurrencyLimits(
    unsigned int _MinConcurrency,
    unsigned int _MaxConcurrency = MaxExecutionResources);

Параметры

_MinConcurrency
Значение MinConcurrency ключа политики.

_MaxConcurrency
Значение MaxConcurrency ключа политики.

Замечания

Метод выдаст invalid_scheduler_policy_thread_specification, если значение, указанное для политики MinConcurrency, превышает указанное для политики MaxConcurrency.

Метод также может вызывать invalid_scheduler_policy_value для других недопустимых значений.

SetPolicyValue

Задает значение ключа политики, предоставленного в качестве key параметра, и возвращает старое значение.

unsigned int SetPolicyValue(
    PolicyElementKey key,
    unsigned int value);

Параметры

key
Ключ политики для задания значения.

значение
Значение для задания ключа политики.

Возвращаемое значение

Если ключ, указанный параметром key, поддерживается, старое значение политики для ключа преобразуется в unsigned int.

Замечания

Метод создает invalid_scheduler_policy_key для недопустимого ключа политики или любого ключа политики, значение которого невозможно задать методом SetPolicyValue .

Метод выбрасывает invalid_scheduler_policy_value для значения, которое не поддерживается ключом, указанным параметром key.

Обратите внимание, что этот метод не разрешен для задания MinConcurrency или MaxConcurrency политик. Чтобы задать эти значения, используйте метод SetConcurrencyLimits .

См. также

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