Перечисления пространства имен concurrency

Перечисление agent_status

Допустимые состояния для объекта agent.

enum agent_status;

Values

Имя Описание
agent_canceled Объект agent отменен.
agent_created Создано agent , но не запущено.
agent_done Завершено agent без отмены.
agent_runnable Запущено agent , но не введено его run метод.
agent_started Началось agent .

Замечания

Дополнительные сведения см. в разделе "Асинхронные агенты".

Требования

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

Перечисление Agents_EventType

Типы событий, которые можно отслеживать с помощью функции трассировки, предоставляемой библиотекой агентов.

enum Agents_EventType;

Values

Имя Описание
AGENTS_EVENT_CREATE Тип события, который представляет создание объекта
AGENTS_EVENT_DESTROY Тип события, который представляет удаление объекта
AGENTS_EVENT_END Тип события, который представляет завершение некоторой обработки
AGENTS_EVENT_LINK Тип события, который представляет связывание блоков сообщений
AGENTS_EVENT_NAME Тип события, который представляет имя для объекта
AGENTS_EVENT_SCHEDULE Тип события, который представляет расписание процесса
AGENTS_EVENT_START Тип события, который представляет запуск некоторой обработки
AGENTS_EVENT_UNLINK Тип события, который представляет отвязку блоков сообщений

Требования

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

Перечисление ConcRT_EventType

Типы событий, которые можно отслеживать с помощью функций трассировки, обеспечиваемых средой выполнения с параллелизмом.

enum ConcRT_EventType;

Values

Имя Описание
CONCRT_EVENT_ATTACH Тип события, представляющий акт подключения к планировщику.
CONCRT_EVENT_BLOCK Тип события, представляющий действие блокировки контекста.
CONCRT_EVENT_DETACH Тип события, представляющий действие отсоединения от планировщика.
CONCRT_EVENT_END Тип события, обозначающий начало пары событий start/end.
CONCRT_EVENT_GENERIC Тип события, используемый для других событий.
CONCRT_EVENT_IDLE Тип события, представляющий действие контекста, который становится бездействующим.
CONCRT_EVENT_START Тип события, обозначающий начало пары событий start/end.
CONCRT_EVENT_UNBLOCK Тип события, представляющий акт разблокировки контекста.
CONCRT_EVENT_YIELD Тип события, представляющий действие возвращаемого контекста.

Требования

Заголовок: пространство имен concrt.h: параллелизм

Перечисление Concrt_TraceFlags

Флажки трассировки для типов событий

enum Concrt_TraceFlags;

Values

Имя Описание
AgentEventFlag
AllEventsFlag
ContextEventFlag
PPLEventFlag
ResourceManagerEventFlag
SchedulerEventFlag
VirtualProcessorEventFlag

Требования

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

Перечисление CriticalRegionType

Тип критической области, внутри которой находится контекст.

enum CriticalRegionType;

Values

Имя Описание
InsideCriticalRegion Указывает, что контекст находится в критическом регионе. В критическом регионе асинхронные приостановки скрыты от планировщика. Если такая приостановка произойдет, Диспетчер ресурсов будет ждать запуска потока и просто возобновить его, а не снова вызвать планировщик. Любые замки, принятые внутри такого региона, должны быть приняты с крайней осторожностью.
InsideHyperCriticalRegion Указывает, что контекст находится внутри гиперкритических регионов. При использовании гиперкритических регионов синхронные и асинхронные приостановки скрыты от планировщика. Если такая приостановка или блокировка произойдет, диспетчер ресурсов ожидает запуска потока и просто возобновляет его, а не вызовет планировщика снова. Блокировки, принятые внутри такого региона, никогда не должны предоставляться совместно с кодом, работающим за пределами такого региона. Это приведет к непредсказуемой взаимоблокировки.
OutsideCriticalRegion Указывает, что контекст находится вне любого критического региона.

Требования

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

Перечисление DynamicProgressFeedbackType

Используется политикой DynamicProgressFeedback для описания того, будет ли к ресурсам планировщика применена повторная балансировка в соответствии со статистическими данными, полученными из планировщика, или только на основе перехода виртуальных процессоров в состояние бездействия и из него через вызовы методов Activate и Deactivate для интерфейса IVirtualProcessorRoot. Дополнительные сведения о доступных политиках планировщика см. в разделе PolicyElementKey.

enum DynamicProgressFeedbackType;

Values

Имя Описание
ProgressFeedbackDisabled Планировщик не собирает сведения о ходе выполнения. Перебалансирование выполняется исключительно на уровне подписки базового аппаратного потока. Дополнительные сведения об уровнях подписки см. в разделе IExecutionResource::CurrentSubscriptionLevel.

Это значение зарезервировано для использования средой выполнения.
ProgressFeedbackEnabled Планировщик собирает сведения о ходе выполнения и передает его диспетчеру ресурсов. Диспетчер ресурсов будет использовать эту статистическую информацию для перебалансировать ресурсы от имени планировщика в дополнение к уровню подписки базового потока оборудования. Дополнительные сведения об уровнях подписки см. в разделе IExecutionResource::CurrentSubscriptionLevel.

Перечисление join_type

Тип блока обмена сообщениями join.

enum join_type;

Values

Имя Описание
greedy Жадные join блоки обмена сообщениями немедленно принимают сообщение при распространении. Это более эффективно, но имеет возможность динамической блокировки в зависимости от конфигурации сети.
non_greedy Не жадные join сообщения блоки откладывают сообщения и пытаются использовать их после прибытия. Они гарантированно работают, но медленнее.

Требования

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

Перечисление message_status

Допустимые ответы на предложение объекта message блоку.

enum message_status;

Values

Имя Описание
accepted Целевой объект принял сообщение.
declined Целевой объект не принял сообщение.
missed Целевой объект пытался принять сообщение, но он больше недоступен.
postponed Целевой объект отложил сообщение.

Требования

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

Перечисление PolicyElementKey

Ключи политики, описывающие аспекты поведения планировщика. Каждый элемент политики описан с помощью пары «ключ — значение». Дополнительные сведения о политиках планировщика и их влиянии на планировщики см. в разделе Планировщик задач.

enum PolicyElementKey;

Values

Имя Описание
ContextPriority Приоритет потока операционной системы каждого контекста в планировщике. Если этот ключ имеет значение INHERIT_THREAD_PRIORITY , контексты в планировщике наследуют приоритет потока, созданного планировщиком.

Допустимые значения: любое из допустимых значений для функции Windows SetThreadPriority и специального значения INHERIT_THREAD_PRIORITY

Значение по умолчанию: THREAD_PRIORITY_NORMAL
ContextStackSize Зарезервированный размер стека каждого контекста в планировщике в килобайтах.

Допустимые значения: положительные целые числа

Значение по умолчанию: 0, указывающее, что значение по умолчанию процесса для размера стека используется.
DynamicProgressFeedback Определяет, будут ли ресурсы планировщика перебалансироваться в соответствии со статистическими данными, собранными планировщиком или только на основе уровня подписки базовых потоков оборудования. Дополнительные сведения см. в разделе DynamicProgressFeedbackType.

Допустимые значения: элемент DynamicProgressFeedbackType перечисления либо ProgressFeedbackEnabled или ProgressFeedbackDisabled

Значение по умолчанию: ProgressFeedbackEnabled
LocalContextCacheSize SchedulingProtocol Если для ключа политики задано значениеEnhanceScheduleGroupLocality, это указывает максимальное количество контекстов запуска, которые разрешено кэшировать в локальных очередях виртуального процессора. Такие контексты обычно выполняются в порядке последней версии (LIFO) на виртуальном процессоре, который привел к их запуску. Обратите внимание, что этот ключ политики не имеет значения, если SchedulingProtocol для ключа задано значение EnhanceForwardProgress.

Допустимые значения: неотрицательных целых чисел

Значение по умолчанию: 8
MaxConcurrency Максимальный уровень параллелизма, необходимый планировщику. Диспетчер ресурсов попытается первоначально выделить это множество виртуальных процессоров. Специальное значение MaxExecutionResources указывает, что требуемый уровень параллелизма совпадает с количеством аппаратных потоков на компьютере. Если указанное значение MinConcurrency больше количества аппаратных потоков на компьютере и MaxConcurrency указано в качестве MaxExecutionResourcesзначения, то значение MaxConcurrency для этого создается, чтобы соответствовать заданному значению MinConcurrency.

Допустимые значения: положительные целые числа и специальное значение MaxExecutionResources

Значение по умолчанию: MaxExecutionResources
MaxPolicyElementKey Максимальный ключ элемента политики. Недопустимый ключ элемента.
MinConcurrency Минимальный уровень параллелизма, который должен быть предоставлен планировщику диспетчером ресурсов. Число виртуальных процессоров, назначенных планировщику, никогда не будет ниже минимального. Специальное значение MaxExecutionResources указывает, что минимальный уровень параллелизма совпадает с количеством аппаратных потоков на компьютере. Если указанное значение MaxConcurrency меньше количества аппаратных потоков на компьютере и MinConcurrency указано в качестве MaxExecutionResourcesзначения, значение MinConcurrency для которых меньше, чтобы соответствовать заданному значению MaxConcurrency.

Допустимые значения: неотрицательных целых чисел и специальное значение MaxExecutionResources. Обратите внимание, что для политик планировщика, используемых для создания планировщиков исполняющей среды с параллелизмом, значение 0 недопустимо.

Значение по умолчанию: 1
SchedulerKind Тип потоков, которые планировщик будет использовать для базовых контекстов выполнения. Дополнительные сведения см. в разделе SchedulerType.

Допустимые значения: элемент перечисления SchedulerType, например ThreadScheduler

Значение по умолчанию: ThreadScheduler. Это преобразуется в потоки Win32 во всех операционных системах.
SchedulingProtocol Описывает, какой алгоритм планирования будет использоваться планировщиком. Дополнительные сведения см. в разделе SchedulingProtocolType.

Допустимые значения: элемент SchedulingProtocolType перечисления либо EnhanceScheduleGroupLocality или EnhanceForwardProgress

Значение по умолчанию: EnhanceScheduleGroupLocality
TargetOversubscriptionFactor Предварительное число виртуальных процессоров для каждого аппаратного потока. Коэффициент переподписки целевого объекта при необходимости может быть увеличен диспетчером ресурсов для обеспечения MaxConcurrency аппаратными потоками на компьютере.

Допустимые значения: положительные целые числа

Значение по умолчанию: 1
WinRTInitialization

Требования

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

Перечисление SchedulerType

Используется политикой SchedulerKind для описания типа потоков, которые должен использовать планировщик для базовых контекстов выполнения. Дополнительные сведения о доступных политиках планировщика см. в разделе PolicyElementKey.

enum SchedulerType;

Values

Имя Описание
ThreadScheduler Указывает явный запрос обычных потоков Win32.
UmsThreadDefault Потоки UMS в пользовательском режиме не поддерживаются в среде выполнения параллелизма в Visual Studio 2013. Использование UmsThreadDefault в качестве значения для политики SchedulerType не приведет к ошибке. Однако, планировщик, созданный с помощью этой политики, по умолчанию будет настроен на использование потоков Win32.

Требования

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

Перечисление SchedulingProtocolType

Используется политикой SchedulingProtocol для описания того, какой алгоритм планирования будет использоваться для планировщика. Дополнительные сведения о доступных политиках планировщика см. в разделе PolicyElementKey.

enum SchedulingProtocolType;

Values

Имя Описание
EnhanceForwardProgress Планировщик предпочитает циклический перебор с помощью групп расписаний после выполнения каждой задачи. Разблокированные контексты обычно запланированы в режиме первого выхода (FIFO). Виртуальные процессоры не кэшируют разблокированные контексты.
EnhanceScheduleGroupLocality Планировщик предпочитает продолжать работать над задачами в текущей группе расписаний, прежде чем переходить в другую группу расписаний. Разблокированные контексты кэшируются на виртуальный процессор и обычно планируются в режиме последнего первого выхода (LIFO) виртуальным процессором, который разблокировал их.

Требования

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

Перечисление SwitchingProxyState

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

enum SwitchingProxyState;

Values

Имя Описание
Blocking Указывает, что вызывающий поток совместно блокируется и должен быть исключительно владельцем вызывающего средства до последующего выполнения повторного выполнения и выполнения других действий.
Idle Указывает, что вызывающий поток больше не нужен планировщику и возвращается в Resource Manager. Контекст, который был отправлен, больше не может использоваться Диспетчером ресурсов.
Nesting Указывает, что вызывающий поток вложен дочерним планировщиком и необходим вызывающему объекту для подключения к другому планировщику.

Замечания

Параметр типа SwitchingProxyState передается методу IThreadProxy::SwitchTo , чтобы указать Resource Manager, как обрабатывать прокси-сервер потока, выполняющий вызов.

Дополнительные сведения об использовании этого типа см. в разделе IThreadProxy::SwitchTo.

Перечисление task_group_status

Описывает состояние выполнения объекта task_group или structured_task_group. Значение этого типа возвращается многочисленными методами, которые ожидают выполнения задач, запланированных для завершения группой задач.

enum task_group_status;

Values

Имя Описание
canceled Объект task_group или structured_task_group отменен. Одна или несколько задач, возможно, не были выполнены.
completed Задачи, поставленные в очередь объекта task_group или structured_task_group, завершены успешно.
not_complete Задачи, поставленные в очередь объекта task_group, не завершены. Обратите внимание, что это значение в настоящее время не возвращается исполняющей средой с параллелизмом.

Требования

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

Перечисление WinRTInitializationType

Используется политикой WinRTInitialization для описания того, будет ли среда выполнения Windows инициализирована в потоках планировщика для приложения, которое работает в операционных системах Windows с версии 8 или выше, и каким образом это будет выполняться. Дополнительные сведения о доступных политиках планировщика см. в разделе PolicyElementKey.

enum WinRTInitializationType;

Values

Имя Описание
DoNotInitializeWinRT Когда приложение выполняется в операционной системе Windows версии 8 и выше, потоки в планировщике не инициализируют среду выполнения Windows.
InitializeWinRTAsMTA Когда приложение выполняется в операционной системе Windows версии 8 или выше, каждый поток в планировщике инициализирует среду выполнения Windows и объявляет, что это часть многопотокового подразделения.

Требования

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

См. также

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