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

Пространство имен concurrency предоставляет классы и функции, которые обеспечивают доступ со средой выполнения с параллелизмом представляет собой платформу параллельного программирования для с++.Дополнительные сведения см. в разделе Среда выполнения с параллелизмом.

namespace concurrency;

Члены

Dd492819.collapse_all(ru-ru,VS.110).gifОпределения типов

Имя

Описание

runtime_object_identity

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

task_status

Тип, представляющий результирующее состояние задачи.Допустимые значения: completed и canceled.

TaskProc

Элементарная абстракция для задачи, определенная как void (__cdecl * TaskProc)(void *).TaskProc вызывается для вызова основного текста задачи.

Dd492819.collapse_all(ru-ru,VS.110).gifКлассы

Имя

Описание

Класс affinity_partitioner

Класс affinity_partitioner аналогичен классу static_partitioner, однако он повышает сходство кэша по выбором поддиапазонов сопоставления с рабочими потоками.Он может значительно повысить производительность при выполнении цикла re- по одним и тем же набором данных, и соответствия данных в кэше.Обратите внимание, что один и тот же объект affinity_partitioner следует использовать с последующими итерациями параллельного цикла, который выполняется над указанным набором данных, извлекал использование локальность данных.

Класс agent

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

Класс auto_partitioner

Класс auto_partitioner представляет используемый по умолчанию метод parallel_for, parallel_for_each и использование parallel_transform разделить диапазон они итерацию.Этот метод employes диапазона секционирования крадя для распределения нагрузки, а также в- проходит отмену.

Класс bad_target

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

Класс call

Блок обмена сообщениями call — многоисточниковый, упорядоченный target_block, который вызывает заданную функцию при приеме сообщения.

Класс cancellation_token

Класс cancellation_token представляет возможность определить, получен ли некоторая операция отменяет.

Класс cancellation_token_registration

Класс cancellation_token_registration представляет уведомления обратного вызова от cancellation_token.

Класс cancellation_token_source

Класс cancellation_token_source представляет возможность отменить операцию.

Класс choice

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

Класс combinable

Объект combinable<T> предназначен для предоставления потокозакрытых копий данных для выполнения свободных от блокировок потоколокальных подвычислений в процессе параллельных алгоритмов.В конце параллельной операции потокозакрытые подвыражения могут быть объединены в окончательный результат.Этот класс может использоваться вместо общей переменной и может привести к улучшение производительности, если бы иначе на общей переменной была сильная конкуренция.

Класс concurrent_priority_queue

Класс concurrent_priority_queue контейнер, который позволяет несколько потоков одновременно помещает в и извлекает элементы.Элементы извлекаются в порядке приоритета, на котором определен приоритет functor заданный как аргумент шаблона.

Класс concurrent_queue

Класс concurrent_queue является классом-контейнером последовательности, позволяющим доступ "первый вошел — первый вышел" к его элементам.Он включает ограниченный набор параллелизм- безопасных операций, например push и try_pop.

Класс concurrent_unordered_map

Класс concurrent_unordered_map параллелизм- безопасный контейнер, который отслеживает последовательность менять- длины элементов типа std::pair<const _Key_type, _Element_type>.Последовательность представлена способом, который включает параллелизм- безопасные добавить к элемента к итератора и прохождения итератора.

Класс concurrent_unordered_multimap

Класс concurrent_unordered_multimap параллелизм- безопасный контейнер, который отслеживает последовательность менять- длины элементов типа std::pair<const _Key_type, _Element_type>.Последовательность представлена способом, который включает параллелизм- безопасные добавить к элемента к итератора и операции прохождения итератора.

Класс concurrent_unordered_multiset

Класс concurrent_unordered_multiset параллелизм- безопасный контейнер, который отслеживает последовательность менять- длину элементов _Key_type типа.Последовательность представлена способом, который включает параллелизм- безопасные добавить к элемента к итератора и операции прохождения итератора.

Класс concurrent_unordered_set

Класс concurrent_unordered_set параллелизм- безопасный контейнер, который отслеживает последовательность менять- длину элементов _Key_type типа.Последовательность представлена способом, который включает параллелизм- безопасные добавить к элемента к итератора и операции прохождения итератора.

Класс concurrent_vector

Класс concurrent_vector является классом-контейнером последовательности, позволяющим произвольный доступ к любому элементу.Он включает параллелизм- безопасные добавить к элемента к итератора и прохождения итератора.

Класс Context

Представляет абстракцию контекста выполнения.

Класс context_self_unblock

Этот класс штриховой описывающее исключение, когда метод Unblock объекта Context вызывается из одного и того же контекста.Это означает попытку данного контекста снять с себя блокировку.

Класс context_unblock_unbalanced

Этот класс штриховой описывающее исключение, если вызовы методов Block и Unblock объекта Context неправильно связыванны.

Класс critical_section

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

Класс CurrentScheduler

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

Класс default_scheduler_exists

Этот класс штриховой описывающее исключение, когда метод Scheduler::SetDefaultSchedulerPolicy вызывается, когда планировщик по умолчанию уже существует в рамках процесса.

Класс event (среда выполнения с параллелизмом)

Событие ручного сброса, которое учитывает явным образом среду параллелизма.

Класс improper_lock

Этот класс содержит штриховой исключение, когда блокировка приобретена неправильно.

Класс improper_scheduler_attach

Этот класс штриховой описывающее исключение, когда метод Attach вызывается на объекте Scheduler, который уже вложен в текущий контекст.

Класс improper_scheduler_detach

Этот класс штриховой описывающее исключение, когда метод CurrentScheduler::Detach вызывается в контексте, который не был вложен в любой планировщику с помощью метода Attach объекта Scheduler.

Класс improper_scheduler_reference

Этот класс штриховой описывающее исключение, когда метод Reference вызывается на объекте Scheduler, который отключает от контекста, который не является частью этого планировщика.

Класс invalid_link_target

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

Класс invalid_multiple_scheduling

Этот класс штриховой описывает исключение, если объект task_handle запланирован несколько раз с помощью метода run объекта task_group или не вмешиваясь в structured_task_group вызова или методам wait или run_and_wait.

Класс invalid_operation

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

Класс invalid_oversubscribe_operation

Этот класс штриховой описывающее исключение, когда метод Context::Oversubscribe вызывается с параметром _BeginOversubscription до прежнего false без вызова метода Context::Oversubscribe с параметром _BeginOversubscription установлен true.

Класс invalid_scheduler_policy_key

Этот класс штриховой описывает исключение, если недопустимый или неизвестный ключ передается конструктору объекта SchedulerPolicy или метод SetPolicyValue объекта SchedulerPolicy передается ключом, который необходимо изменить, используя другие значения, как метод SetConcurrencyLimits.

Класс invalid_scheduler_policy_thread_specification

Этот класс штриховой описывающее исключение при попытке задать ограничения параллелизма объекта SchedulerPolicy те, что значение ключа MinConcurrency, чем значение ключа MaxConcurrency.

Класс invalid_scheduler_policy_value

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

Класс ISource

Класс ISource является интерфейсом для всех исходных блоков.Блоки источников распространяют сообщения блокам ITarget.

Класс ITarget

Класс ITarget является интерфейсом для всех целевых блоков.Целевые блоки потребляют сообщения, предлагаемые им блоками ISource.

Класс join

Блок сообщений join — многоисточниковый одноцелевой упорядоченный propagator_block, который сочетает сообщения типа _Type от каждого из своих источников.

Класс location

Абстракция фактического месторасположения на оборудовании.

Класс message

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

Класс message_not_found

Этот класс штриховой описывает исключение, если блок обмена сообщениями не удается найти сообщение.

Класс message_processor

Класс message_processor является абстрактным базовым классом для обработки объектов message.Нет никакой гарантии на порядок сообщений.

Класс missing_wait

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

Класс multi_link_registry

Объект multi_link_registry — это network_link_registry, который управляет несколькими исходными блоками или несколькими целевыми блоками.

Класс multitype_join

Блок сообщений multitype_join — многоисточниковый одноцелевой упорядоченный блок сообщений, который сочетает сообщения различных типов от каждого из своих источников и предлагает целевым объектам кортеж объединенных сообщений.

Класс nested_scheduler_missing_detach

Этот класс штриховой описанием исключения, когда среда выполнения с параллелизмом обнаруживает, что упустили вызвать метод CurrentScheduler::Detach в контексте, вложил ко второму планировщику с помощью метода Attach объекта Scheduler.

Класс network_link_registry

Абстрактный базовый класс network_link_registry управляет связями между исходными и целевыми блоками.

Класс operation_timed_out

Этот класс штриховой описывающее исключение, когда операция приурочивала ожидания.

Класс ordered_message_processor

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

Класс overwrite_buffer

Блок сообщений overwrite_buffer — многоцелевой, многоисточниковый, упорядоченный propagator_block, способный хранить одно сообщение за раз.Новые сообщения перезаписывают предыдущие.

Класс progress_reporter

Класс репортера " ход выполнения " предоставляет уведомления о ходе выполнения отчета определенного типа.Каждый объект progress_reporter, привязанный к указанным асинхронным действием или операции.

Класс propagator_block

Класс propagator_block является абстрактным базовым классом для блоков сообщений, которые одновременно исходные и целевые.Объединяет функциональные возможности обоих классов source_block и target_block.

Класс reader_writer_lock

Блокировка чтения-записи на основе очереди с предпочтением записи со строго локальной циклической работой.Блокировка предоставляет доступ "первым вошел — первым вышел" для писателей и исключает доступ читателей под постоянной нагрузкой со стороны писателей.

Класс ScheduleGroup

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

Класс Scheduler

Представляет абстракцию для планировщика среды параллелизма.

Класс scheduler_not_attached

Этот класс штриховой описывающее исключение при выполнении операции, требующей, что планировщик вложен к текущему контексту, а другой - нет.

Класс scheduler_resource_allocation_error

Этот класс содержит штриховой исключение из-за сбоя получить критические ресурсы среды выполнения с параллелизмом.

Класс scheduler_worker_creation_error

Этот класс содержит штриховой исключение из-за сбоя создания контекста выполнения работы среды выполнения с параллелизмом.

Класс SchedulerPolicy

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

Класс simple_partitioner

Класс simple_partitioner представляет собой статическое разделение диапазона повторенного кроме parallel_for.Модуль разделения разделяет диапазон в блоки так, что каждый блок содержит хотя бы число итераций, заданных размера блока.

Класс single_assignment

Блок сообщений single_assignment — многоцелевой, многоисточниковый, упорядоченный propagator_block, способный хранить одно записываемое один раз message.

Класс single_link_registry

Объект single_link_registry — это network_link_registry, управляющий только одним исходным или целевым блоком.

Класс source_block

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

Класс source_link_manager

Объект source_link_manager управляет ссылками сети блока сообщений на блоки ISource.

Класс static_partitioner

Класс static_partitioner представляет собой статическое разделение диапазона повторенного кроме parallel_for.Модуль разделения разделяет диапазон столько блоков как рабочие, доступные для underyling планировщику.

Класс structured_task_group

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

Класс target_block

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

Класс task (среда выполнения с параллелизмом)

Класс task библиотека параллельных шаблонов (PPL).Объект task представляет работы, может быть выполнена асинхронно и параллельно с другими задачами и параллельные созданных параллельными алгоритмами работы среды выполнения с параллелизмом.Он предоставляет типа _ResultType при успешном завершении.Задачи типа task<void> не получает никакого.Задачу можно отменить ожидание и независимо от других задач.Ее также можно сочетать с другими задачами с помощью продолжения (then), а соединение (when_all) и выберите шаблоны (when_any).

Класс task_canceled

Этот класс штриховой задачами PPL описывающее исключение наслаивает для принудительного выполнения текущей задачи отменены.Она также возникает методом get() на задача, отмененной задачи.

Класс task_completion_event

Класс task_completion_event позволяет отложить выполнение задач до тех пор, пока условие не удовлетворяется или запускать задачу в ответ на внешнее событие.

Класс task_continuation_context

Класс task_continuation_context позволяет указать, где требуется продолжение должно быть выполнено.Полезно только использовать этот класс, производный от приложения в стиле Metro.Для приложений, отличного от стиля Seattle, контекст выполнения продолжения задачи определяется средой выполнения и не настраивается.

Класс task_group

Класс task_group представляет коллекцию параллельные работы которые могут подождать или быть отменена.

Класс task_handle

Класс task_handle представляет отдельный параллельный рабочий элемент.Он инкапсулирует инструкции и данные, необходимые для выполнения части работы.

Класс timer

Блок сообщений timer — это одноцелевой source_block, способный отправлять сообщение цели по истечении указанного периода времени или через определенные интервалы.

Класс transformer

Блок сообщений transformer — одноцелевой многоисточниковый упорядоченный propagator_block, который может принимать сообщения одного типа и способен хранить неограниченное число сообщений другого типа.

Класс unbounded_buffer

Блок сообщений unbounded_buffer — многоцелевой, многоисточниковый, упорядоченный propagator_block, способный хранить неограниченное число сообщений.

Класс unsupported_os

Этот класс штриховой описывающее исключение, если неподдерживаемая операционная система используется.Среда параллелизма не поддерживает версии операционных систем до Windows XP с пакетом обновления 3 (SP3).

Dd492819.collapse_all(ru-ru,VS.110).gifСтруктуры

Имя

Описание

Структура DispatchState

Структура DispatchState используется для передачи состояния методу IExecutionContext::Dispatch.Он описывает обстоятельства, под которыми вызывается метод Dispatch на интерфейсе IExecutionContext.

Структура IExecutionContext

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

Структура IExecutionResource

Абстракция для аппаратного потока.

Структура IResourceManager

Интерфейс к диспетчеру ресурсов среды параллелизма.Это интерфейс, по которому планировщики взаимодействовать с диспетчер ресурсов.

Структура IScheduler

Интерфейс к абстракции планировщика работы.Диспетчер ресурсов среды параллелизма использует этот интерфейс для связи с планировщиками работы.

Структура ISchedulerProxy

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

Структура IThreadProxy

Абстракция для потока выполнения.В зависимости от создаваемого ключа политики SchedulerType планировщика, диспетчер ресурсов будет предоставить прокси-поток, который основывается на регулярном потоке Win32 или потоком, планируемым в режиме пользователя (UMS).UMS потоки являются поддерживаемыми в 64-разрядных операционных системах, начиная с Windows 7 и выше.

Структура ITopologyExecutionResource

Интерфейс к ресурсу выполнения в соответствии с диспетчером ресурсов.

Структура ITopologyNode

Интерфейс для узла топологии в соответствии с диспетчером ресурсов.Узел содержит один или более ресурсов выполнения.

Структура IUMSCompletionList

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

Структура IUMSScheduler

Интерфейс к абстракции планировщика работы, который хочет, чтобы диспетчер ресурсов среда параллелизма передал ему планируемые пользовательским режимом потоки (UMS).Диспетчер ресурсов использует этот интерфейс для связи с планировщиками UMS-потоков.Интерфейс IUMSScheduler наследует от интерфейса IScheduler.

Структура IUMSThreadProxy

Абстракция для потока выполнения.Если требуется, чтобы планировщик предоставлять запланированные пользовательского режимом потоков (UMS), задайте значение для элемента политики планировщика SchedulerKind как UmsThreadDefault и реализуйте интерфейс IUMSScheduler.UMS потоки являются только поддерживаемыми в 64-разрядных операционных системах, начиная с Windows 7 и выше.

Структура IUMSUnblockNotification

Представляет уведомление от диспетчера ресурсов, что прокси поток, который заблокирован и запустил возврат к назначенному планирования контексту планировщика, разблокирован и готов для планирования.Этот интерфейс является недопустимым после перепланирования связанного контекста выполнения прокси-потока, возвращенного из метода GetContext.

Структура IVirtualProcessorRoot

Абстракция для аппаратного потока, на котором может выполняться прокси-поток.

Dd492819.collapse_all(ru-ru,VS.110).gifПеречисления

Имя

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dd492819.collapse_all(ru-ru,VS.110).gifФункции

Имя

Описание

Функция Alloc

Выделяет блок памяти размером определенного от параллелизма кэширования Suballocator времени выполнения.

Функция asend

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

Функция cancel_current_task

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

Не является поддерживаемым сценария для вызова эта функция если вы не в теле task.Это приведет к созданию неназначенной расширения функциональности, как после сбоя или представление в приложении.

Функция create_async

Создает конструкцию среды выполнения асинхронной предоставленного пользователем windows, основанную на объекте lambda или функции.Возвращаемый тип create_async одно из IAsyncAction^ или IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^ или IAsyncOperationWithProgress<TResult, TProgress>^ на основе подписи лямбда-выражения, переданного методу.

Функция create_task

Перегружен.Создает объект PPL задача.create_task можно использовать везде, бы конструктор, используемый задачи.Защищается главным образом для удобства, так как она допускает использование ключевого слова auto при создании задает действие.

Функция CreateResourceManager

Возвращает интерфейс, который представляет одиночный экземпляр диспетчера ресурсов среда среды выполнения параллелизма.Диспетчер ресурсов является ответственным за назначение ресурсов планировщикам, которым необходимо взаимодействовать друг с другом.

Функция DisableTracing

Отключает трассировку в среде выполнения блокировки.Эта функция нерекомендуема поскольку трассировки etw незарегистрированное по умолчанию.

Функция EnableTracing

Включает трассировку в среде выполнения блокировки.Эта функция нерекомендуема поскольку трассировки etw теперь включен по умолчанию.

Функция Free

Освобождает ранее методом Alloc блок памяти, выделенный с параллелизмом кэширования Suballocator среды выполнения.

Функция GetExecutionContextId

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

Функция GetOSVersion

Возвращает версию операционной системы.

Функция GetProcessorCount

Возвращает число потоков оборудования в базовой системе.

Функция GetProcessorNodeCount

Возвращает число узлов NUMA или пакеты процессора в базовой системе.

Функция GetSchedulerId

Возвращает уникальный идентификатор, который может быть назначен планировщику, который реализует интерфейс IScheduler.

Функция interruption_point

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

Функция is_current_task_group_canceling

Возвращает значение, указывающее, находится ли группа задач, которая выполняется в данный момент встроено в текущем контексте, в процессе активной отмены (или будет вскоре).Обратите внимание, что если нет групп задач, выполняющихся в текущем контексте, будет возвращено false.

Функция is_task_cancellation_requested

Возвращает сведения об получала ли задача, которая в настоящий момент выполняет запрос отмены выполнения.Отмена спрошена в задаче, если задача была создана с токеном отмены и отменен источника токена, связанный с данным токеном.

Функция make_choice

Перегружен.Конструирует блок сообщений choice из необязательного Scheduler или ScheduleGroup и от двух до десяти источников ввода.

Функция make_greedy_join

Перегружен.Конструирует блок сообщений greedy multitype_join из необязательного Scheduler или ScheduleGroup и от двух до десяти источников ввода.

Функция make_join

Перегружен.Конструирует блок сообщений non_greedy multitype_join из необязательного Scheduler или ScheduleGroup и от двух до десяти источников ввода.

Функция make_task

Метод фабрики для создания объекта task_handle.

Функция parallel_buffered_sort

Перегружен.Упорядочивает элементы в указанном диапазоне в nondescending порядок, в соответствии с двоичным предиката, упорядочения критерию, указанному в параллельном режиме.Эта функция семантически схожа с std::sort в сравнить-, что она основана неустойчиво, сортировать, за исключением того, что в- размещения требуется место O(n) дополнительная и требуют по умолчанию инициализации для сортированными элементов.

Функция parallel_for

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

Функция parallel_for_each

Перегружен.parallel_for_each применяет указанную функцию к каждому элементу в диапазоне, параллельно.Оно эквивалентно семантически функции for_each в пространстве имен std, за исключением того, что итерации по элементам выполняется параллельно, и порядок итерации не определен.Аргумент _Func должен поддерживать оператор вызова функции формы operator()(T), где параметр T является типом элемента контейнера, итерация по которому выполняется.

Функция parallel_invoke

Перегружен.Выполняет объекты функции, предоставленные в виде параметров в параллели, и блоки до завершения их выполнения.Каждый объект функции может быть лямбда-выражением, указателем на функцию или любым объектом, который поддерживает оператор вызова функции с сигнатурой void operator()().

Функция parallel_radixsort

Перегружен.Упорядочивает элементы в указанном диапазоне в non по убыванию, используя алгоритм сортировки корня.Это стабильная функция сортировки, которая требует функции проекции, которая может запроектировать, что элементы были отсортированы беззнаковое целое число- в качестве ключей.По умолчанию требуется инициализация для сортированной элементов.

Функция parallel_reduce

Перегружен.Вычисляет сумму всех элементов в указанном диапазоне, вычисление суммы или последовательные частично вычисляет результат последовательных частично результатов аналогично, полученных от использования указанной бинарной операции, кроме суммы, параллельно.parallel_reduce семантически аналогично std::accumulate, за исключением того, что требует бинарная операция будет ассоциативно и требует значения идентификаторов вместо начального значения.

Функция parallel_sort

Перегружен.Упорядочивает элементы в указанном диапазоне в nondescending порядок, в соответствии с двоичным предиката, упорядочения критерию, указанному в параллельном режиме.Эта функция семантически схожа с std::sort в сравнить-, что она основана неустойчиво, сортировка в- размещения.

Функция parallel_transform

Перегружен.Применяет указанный объект функции к каждому элементу в диапазоне источника или к паре элементов из 2 диапазонов источника и копирует возвращаемые значения объекта функции в диапазон назначения, параллельно.Эта функциональная семантически эквивалентной привязке std::transform.

Функция receive

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

Функция run_with_cancellation_token

Выполняет объект функции немедленно и одновременно в контексте данного токена отмены.

Функция send

Перегружен.Операция синхронной отправки, которая ожидает до тех пор, пока целевой объект не принимает или отклоняет сообщение.

Функция set_task_execution_resources

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

Он допустим для вызова этот метод только до того, как диспетчер ресурсов был создан или от 2 времени существования диспетчера ресурсов.Ее можно вызывать несколько раз, при условии, что диспетчер ресурсов не существует во время вызова.После того как ограничение сходства было установлено, оно остается в силе до следующего вызова метода set_task_execution_resources допустимым.

Маске схожести обеспечила не должны быть подмножеством маски сходства процессов.Сходство процесса будет обновляться при необходимости.

Функция swap

Обменивает элементы двух объектов concurrent_vector.

Функция Trace_agents_register_name

Связывает данное имя в блок или агенту сообщения трассировки событий Windows.

Функция try_receive

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

Функция wait

Приостанавливает текущий контекст на заданной промежутка времени.

Функция when_all

Перегружен.Создает задачу, завершается успешно, если все задачи, переданные в качестве аргументов завершены успешно.

Функция when_any

Перегружен.Создает задачу, завершается успешно, если какие-либо задачи, переданные в качестве аргументов завершены успешно.

Dd492819.collapse_all(ru-ru,VS.110).gifОператоры

Имя

Описание

Оператор operator!=

Проверяет, равен ли объект concurrent_vector на левой стороне оператора объекту concurrent_vector правой стороны.

Оператор operator&&

Перегружен.Создает задачу, завершается успешно, если обе задачи, предоставляемых в качестве аргументов завершены успешно.

Оператор operator||

Перегружен.Создает задачу, завершается успешно, если любая из задач, предоставляемых в качестве аргументов, завершается успешно.

Оператор operator<

Проверяет, меньше ли объект concurrent_vector на левой стороне оператора объекту concurrent_vector правой стороны.

Оператор operator<=

Проверяет, меньше либо равен ли объект concurrent_vector на левой стороне оператора объекту concurrent_vector правой стороны.

Оператор operator==

Проверяет, равен ли объект concurrent_vector на левой стороне оператора объекту concurrent_vector правой стороны.

Оператор operator>

Проверяет, больше ли объект concurrent_vector на левой стороне оператора объекту concurrent_vector правой стороны.

Оператор operator>=

Проверяет, больше ли равен ли объект concurrent_vector на левой стороне оператора объекту concurrent_vector правой стороны.

Dd492819.collapse_all(ru-ru,VS.110).gifКонстанты

Имя

Описание

Константа AgentEventGuid

Идентификатор GUID категории ({B9B5B78C - от 0713 до 4898 - C. 67949DCED07 21 a.}), описывающие событие трассировки событий windows, предоставленные библиотекой агентов среды выполнения с параллелизмом.

Константа ChoreEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с делами или задачами.

Константа ConcRT_ProviderGuid

Поставщик ETW GUID для среды параллелизма.

Константа CONCRT_RM_VERSION_1

Указывает поддержку интерфейса диспетчера ресурсов, определенные в Visual Studio 2010.

Константа ConcRTEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые не описаны подробнее другой категорией.

Константа ContextEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с контекстами.

Константа COOPERATIVE_TIMEOUT_INFINITE

Значение, указывающее, что время ожидания никогда не должно кончаться.

Константа COOPERATIVE_WAIT_TIMEOUT

Значение, указывающее, что время ожидания кончилось.

Константа INHERIT_THREAD_PRIORITY

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

Константа LockEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с блокировками.

Константа MaxExecutionResources

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

Константа PPLParallelForeachEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с использованием функции parallel_for_each.

Константа PPLParallelForEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с использованием функции parallel_for.

Константа PPLParallelInvokeEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с использованием функции parallel_invoke.

Константа ResourceManagerEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с диспетчером ресурсов.

Константа ScheduleGroupEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с группами расписания.

Константа SchedulerEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с действием расписания.

Константа VirtualProcessorEventGuid

Категория GUID, описывающий события ETW, созданные средой выполнения параллелизма, которые непосредственно связаны с виртуальными процессорами.

Требования

заголовок: agents.h, concrt.h, concrtrm.h, concurrent_priority_queue.h, concurrent_queue.h, concurrent_unordered_map.h, concurrent_unordered_set.h, concurrent_vector.h, ppl.h, ppltasks.h

См. также

Другие ресурсы

Справочные материалы (среда выполнения с параллелизмом)