Перечисления пространства имен concurrency
Перечисление agent_status
Допустимые состояния для объекта agent
.
enum agent_status;
Значения
Имя | Описание |
---|---|
agent_canceled |
Объект agent отменен. |
agent_created |
Создано agent , но не запущено. |
agent_done |
Завершено agent без отмены. |
agent_runnable |
Запущено agent , но не введено его run метод. |
agent_started |
Началось agent . |
Замечания
Дополнительные сведения см. в разделе "Асинхронные агенты".
Требования
Заголовок: concrt.h
Перечисление Agents_EventType
Типы событий, которые можно отслеживать с помощью функции трассировки, предоставляемой библиотекой агентов.
enum Agents_EventType;
Значения
Имя | Описание |
---|---|
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;
Значения
Имя | Описание |
---|---|
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;
Значения
Имя | Описание |
---|---|
AgentEventFlag |
|
AllEventsFlag |
|
ContextEventFlag |
|
PPLEventFlag |
|
ResourceManagerEventFlag |
|
SchedulerEventFlag |
|
VirtualProcessorEventFlag |
Требования
Заголовок: concrt.h
Перечисление CriticalRegionType
Тип критической области, внутри которой находится контекст.
enum CriticalRegionType;
Значения
Имя | Описание |
---|---|
InsideCriticalRegion |
Указывает, что контекст находится в критическом регионе. В критическом регионе асинхронные приостановки скрыты от планировщика. Если такая приостановка произойдет, Диспетчер ресурсов будет ждать запуска потока и просто возобновить его, а не снова вызвать планировщик. Любые замки, принятые внутри такого региона, должны быть приняты с крайней осторожностью. |
InsideHyperCriticalRegion |
Указывает, что контекст находится внутри гиперкритических регионов. При использовании гиперкритических регионов синхронные и асинхронные приостановки скрыты от планировщика. Если такая приостановка или блокировка произойдет, диспетчер ресурсов ожидает запуска потока и просто возобновляет его, а не вызовет планировщика снова. Блокировки, принятые внутри такого региона, никогда не должны предоставляться совместно с кодом, работающим за пределами такого региона. Это приведет к непредсказуемой взаимоблокировки. |
OutsideCriticalRegion |
Указывает, что контекст находится вне любого критического региона. |
Требования
Заголовок: concrtrm.h
Перечисление DynamicProgressFeedbackType
Используется политикой DynamicProgressFeedback
для описания того, будет ли к ресурсам планировщика применена повторная балансировка в соответствии со статистическими данными, полученными из планировщика, или только на основе перехода виртуальных процессоров в состояние бездействия и из него через вызовы методов Activate
и Deactivate
для интерфейса IVirtualProcessorRoot
. Дополнительные сведения о доступных политиках планировщика см. в разделе PolicyElementKey.
enum DynamicProgressFeedbackType;
Значения
Имя | Описание |
---|---|
ProgressFeedbackDisabled |
Планировщик не собирает сведения о ходе выполнения. Перебалансирование выполняется исключительно на уровне подписки базового аппаратного потока. Дополнительные сведения об уровнях подписки см. в разделе IExecutionResource::CurrentSubscriptionLevel. Это значение зарезервировано для использования средой выполнения. |
ProgressFeedbackEnabled |
Планировщик собирает сведения о ходе выполнения и передает его диспетчеру ресурсов. Диспетчер ресурсов будет использовать эту статистическую информацию для перебалансировать ресурсы от имени планировщика в дополнение к уровню подписки базового потока оборудования. Дополнительные сведения об уровнях подписки см. в разделе IExecutionResource::CurrentSubscriptionLevel. |
Перечисление join_type
Тип блока обмена сообщениями join
.
enum join_type;
Значения
Имя | Описание |
---|---|
greedy |
Жадные join блоки обмена сообщениями немедленно принимают сообщение при распространении. Это более эффективно, но имеет возможность динамической блокировки в зависимости от конфигурации сети. |
non_greedy |
Не жадные join сообщения блоки откладывают сообщения и пытаются использовать их после прибытия. Они гарантированно работают, но медленнее. |
Требования
Заголовок: agents.h
Перечисление message_status
Допустимые ответы на предложение объекта message
блоку.
enum message_status;
Значения
Имя | Описание |
---|---|
accepted |
Целевой объект принял сообщение. |
declined |
Целевой объект не принял сообщение. |
missed |
Целевой объект пытался принять сообщение, но он больше недоступен. |
postponed |
Целевой объект отложил сообщение. |
Требования
Заголовок: agents.h
Перечисление PolicyElementKey
Ключи политики, описывающие аспекты поведения планировщика. Каждый элемент политики описан с помощью пары «ключ — значение». Дополнительные сведения о политиках планировщика и их влиянии на планировщики см. в разделе Планировщик задач.
enum PolicyElementKey;
Значения
Имя | Описание |
---|---|
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;
Значения
Имя | Описание |
---|---|
ThreadScheduler |
Указывает явный запрос обычных потоков Win32. |
UmsThreadDefault |
Потоки UMS в пользовательском режиме не поддерживаются в среде выполнения параллелизма в Visual Studio 2013. Использование UmsThreadDefault в качестве значения для политики SchedulerType не приведет к ошибке. Однако, планировщик, созданный с помощью этой политики, по умолчанию будет настроен на использование потоков Win32. |
Требования
Заголовок: concrt.h
Перечисление SchedulingProtocolType
Используется политикой SchedulingProtocol
для описания того, какой алгоритм планирования будет использоваться для планировщика. Дополнительные сведения о доступных политиках планировщика см. в разделе PolicyElementKey.
enum SchedulingProtocolType;
Значения
Имя | Описание |
---|---|
EnhanceForwardProgress |
Планировщик предпочитает циклический перебор с помощью групп расписаний после выполнения каждой задачи. Разблокированные контексты обычно запланированы в режиме первого выхода (FIFO). Виртуальные процессоры не кэшируют разблокированные контексты. |
EnhanceScheduleGroupLocality |
Планировщик предпочитает продолжать работать над задачами в текущей группе расписаний, прежде чем переходить в другую группу расписаний. Разблокированные контексты кэшируются на виртуальный процессор и обычно планируются в режиме последнего первого выхода (LIFO) виртуальным процессором, который разблокировал их. |
Требования
Заголовок: concrt.h
Перечисление SwitchingProxyState
Используется для обозначения состояния прокси-потока, когда он выполняет совместное переключение контекста на другой прокси-поток.
enum SwitchingProxyState;
Значения
Имя | Описание |
---|---|
Blocking |
Указывает, что вызывающий поток совместно блокируется и должен быть исключительно владельцем вызывающего средства до последующего выполнения повторного выполнения и выполнения других действий. |
Idle |
Указывает, что вызывающий поток больше не нужен планировщику и возвращается в Resource Manager. Контекст, который был отправлен, больше не может использоваться Диспетчером ресурсов. |
Nesting |
Указывает, что вызывающий поток вложен дочерним планировщиком и необходим вызывающему объекту для подключения к другому планировщику. |
Замечания
Параметр типа SwitchingProxyState
передается методу IThreadProxy::SwitchTo
, чтобы указать Resource Manager, как обрабатывать прокси-сервер потока, выполняющий вызов.
Дополнительные сведения об использовании этого типа см. в разделе IThreadProxy::SwitchTo.
Перечисление task_group_status
Описывает состояние выполнения объекта task_group
или structured_task_group
. Значение этого типа возвращается многочисленными методами, которые ожидают выполнения задач, запланированных для завершения группой задач.
enum task_group_status;
Значения
Имя | Описание |
---|---|
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;
Значения
Имя | Описание |
---|---|
DoNotInitializeWinRT |
Когда приложение выполняется в операционной системе Windows версии 8 и выше, потоки в планировщике не инициализируют среду выполнения Windows. |
InitializeWinRTAsMTA |
Когда приложение выполняется в операционной системе Windows версии 8 или выше, каждый поток в планировщике инициализирует среду выполнения Windows и объявляет, что это часть многопотокового подразделения. |
Требования
Заголовок: concrt.h