Compartilhar via


Namespace Concurrency

O namespace Concurrency fornece classes e funções que permitem acesso ao Runtime de simultaneidade, uma estrutura de programação simultânea para C++. Para obter mais informações, consulte Tempo de Execução de Simultaneidade.

namespace concurrency;

Membros

Namespaces

Nome

Descrição

concurrency::extensibility Namespace

Typedefs

Nome

Descrição

runtime_object_identity

Cada instância de mensagem tem uma identidade que o siga ao ser clonado e passados entre os componentes da mensagem. Isso não seja o endereço do objeto de mensagem.

task_status

Um tipo que representa o estado terminal uma tarefa. Os valores válidos são completed e canceled.

TaskProc

Uma abstração elementar para uma tarefa, definida como void (__cdecl * TaskProc)(void *). TaskProc é chamado para invocar o corpo de uma tarefa.

TaskProc_t

Uma abstração elementar para uma tarefa, definida como void (__cdecl * TaskProc_t)(void *). TaskProc é chamado para invocar o corpo de uma tarefa.

Classes

Nome

Descrição

Classe affinity_partitioner

A classe de affinity_partitioner é semelhante à classe de static_partitioner , mas aumenta a afinidade do cache pela escolha de subintervalos de mapeamento a threads de trabalho. Pode melhorar o desempenho significativamente quando um loop é executado no mesmo conjunto de dados, e os ajustes de dados no cache. Observe que o mesmo objeto de affinity_partitioner deve ser usado com iterações subsequentes de um loop paralelo que é executado em um conjunto de dados específico, o benefício da localidade de dados.

Classe agente

Uma classe pretendeu ser usada como uma classe base para todos os agentes independentes. É usado para ocultar o estado de outros agentes e interagir com mensagem- passagem.

Classe auto_partitioner

A classe de auto_partitioner representa o método padrão parallel_for, parallel_for_each e uso de parallel_transform dividir o intervalo a iteração por. Este método de intervalo de employes de particionamento que rouba para o balanceamento de carga bem como itera pelo cancelamento.

Classe bad_target

Essa classe descreve uma exceção lançada quando um bloco de mensagem recebe um ponteiro para um destino que não é válido para a operação que está sendo executada.

classe da chamada

Um bloco da mensagem de call é uma origem, várias target_block ordenado que invoca uma função especificada ao receber uma mensagem.

Classe cancellation_token

A classe de cancellation_token representa a capacidade para determinar se qualquer operação teve solicitação de cancelamento. Um token determinado pode ser associado com um task_group, structured_task_group, ou task para fornecer cancelamento implícito. Também pode ser pesquisado para cancelamento ou ter um retorno de chamada registrado para se e quando o cancellation_token_source associado for cancelado.

Classe cancellation_token_registration

A classe de cancellation_token_registration representa uma notificação de retorno de chamada de cancellation_token. Quando o método de register em um cancellation_token é usado para receber a notificação quando o cancelamento ocorre, um objeto de cancellation_token_registration é retornado como um manipulador ao retorno de chamada para que o chamador possa solicitar que um retorno de chamada específica não seja mais feito usando o método de deregister.

Classe cancellation_token_source

A classe de cancellation_token_source representa a capacidade para cancelar qualquer operação anulável.

Classe choice

Um bloco da mensagem de choice várias é uma origem, o bloco de um único destino que representa uma interação de fluxo de controle com um conjunto de fontes. O bloco bem escolhido aguardará qualquer de várias fontes para gerar uma mensagem e propagará o índice de origem que gerou a mensagem.

Classe combinable

O objeto de combinable<T> é destinado fornecer cópias de privadas dos dados, para executar computações subelemento lock-partition-id&gt livres de thread local durante algoritmos paralelos. No final da operação paralela, as computações um thread privadas podem ser mescladas em um resultado final. Esta classe pode ser usada em vez de uma variável compartilhado, e pode levar a uma melhoria de desempenho se haveria de outra forma muita contenção em que a variável compartilhado.

Classe concurrent_priority_queue

A classe de concurrent_priority_queue é um contêiner que permite que vários threads simultaneamente empurrem e itens aparecem. Os itens são aparecidos em ordem de prioridade em que a prioridade é determinada por um funtor fornecido como um argumento do modelo.

Classe concurrent_queue

A classe de concurrent_queue é uma classe do contêiner da sequência em que permite (primeiro a entrar, out acesso a seus elementos. Permite que um conjunto limitado de operações simultaneidade- seguras, como push e try_pop.

Classe concurrent_unordered_map

A classe de concurrent_unordered_map é um contêiner protegido contra simultaneidade que controla uma sequência de variação dos elementos de tipo std::pair<const _Key_type, _Element_type>. A sequência é representada em uma forma que permite acréscimo protegido contra simultaneidade, acesso de elemento, acesso de iterador, e operações de passagem de iterador.

Classe concurrent_unordered_multimap

A classe concurrent_unordered_multimap é um contêiner protegido contra simultaneidade que controla uma sequência de comprimento variado de elementos do tipo std::pair<const _Key_type, _Element_type>. A sequência é representada em uma forma que permite acréscimo protegido contra simultaneidade, acesso de elemento, acesso de iterador e operações de passagem de iterador.

Classe concurrent_unordered_multiset

A classe concurrent_unordered_multiset é um contêiner protegido contra simultaneidade que controla uma sequência de comprimento variado de elementos do tipo _Key_type. A sequência é representada em uma forma que permite acréscimo protegido contra simultaneidade, acesso de elemento, acesso de iterador e operações de passagem de iterador.

Classe concurrent_unordered_set

A classe concurrent_unordered_set é um contêiner protegido contra simultaneidade que controla uma sequência de comprimento variado de elementos do tipo _Key_type. A sequência é representada em uma forma que permite acréscimo protegido contra simultaneidade, acesso de elemento, acesso de iterador e operações de passagem de iterador.

Classe concurrent_vector

A classe de concurrent_vector é uma classe do contêiner de sequência que permite de acesso aleatório a qualquer elemento. Habilita simultaneidade- seguro, anexa acesso do elemento, o acesso de iterador, e operações de passagem do iterador.

Classe Context

Representa uma abstração para um contexto de execução.

Classe context_self_unblock

Essa classe descreve uma exceção gerada quando o método de Unblock de um objeto de Context é chamado do mesmo contexto. Isso indicaria uma tentativa por um determinado contexto de desbloquear-se.

Classe context_unblock_unbalanced

Essa classe descreve uma exceção lançada quando as chamadas para os métodos de Block e de Unblock de um objeto de Context não emparelhados são corretamente.

Classe critical_section

Um mutex não reentrante que seja explicitamente ciente de tempo de execução de simultaneidade.

Classe CurrentScheduler

Representa uma abstração para o agendador associado atual com o contexto de chamada.

Classe default_scheduler_exists

Essa classe descreve uma exceção gerada quando o método de Scheduler::SetDefaultSchedulerPolicy é chamado quando um agendador padrão já existe no processo.

Classe event

Um evento manual de redefinição que esteja explicitamente ciente do tempo de execução de simultaneidade.

Classe improper_lock

Essa classe descreve uma exceção lançada quando um bloqueio é adquirido de forma incorreta.

Classe improper_scheduler_attach

Essa classe descreve uma exceção gerada quando o método de Attach é chamado em um objeto de Scheduler que seja anexado no contexto atual.

Classe improper_scheduler_detach

Essa classe descreve uma exceção gerada quando o método de CurrentScheduler::Detach é chamado de um contexto que não está anexado a um agendador que usa o método de Attach de um objeto de Scheduler .

Classe improper_scheduler_reference

Essa classe descreve uma exceção gerada quando o método é chamado de Reference um objeto de Scheduler que está fechando, de um contexto que não faça parte desse agendador.

Classe invalid_link_target

Essa classe descreve uma exceção gerada quando o método de link_target de um bloco da mensagem é chamado e o bloco da mensagem é incapaz de vincular ao destino. Esse pode ser o resultado de exceder o número de links que o bloco da mensagem é permitido ou tentativa de vincular duas vezes em um destino específico para a mesma origem.

Classe invalid_multiple_scheduling

Essa classe descreve uma exceção gerada quando um objeto de task_handle é agendado várias vezes usando o método de run de um objeto de task_group ou de structured_task_group sem uma chamada de intervenção os métodos de wait ou de run_and_wait .

Classe invalid_operation

Essa classe descreve uma exceção acionada quando é executado uma operação inválida que não é mais descrita com exatidão por outro tipo de exceção lançado pelo tempo de execução de simultaneidade.

Classe invalid_oversubscribe_operation

Essa classe descreve uma exceção gerada quando o método de Context::Oversubscribe for chamado com o parâmetro de _BeginOversubscription definido como false sem uma chamada anterior ao método de Context::Oversubscribe com o parâmetro de _BeginOversubscription definido como true.

Classe invalid_scheduler_policy_key

Essa classe descreve uma exceção gerada quando uma chave inválida ou desconhecida é passado a um construtor do objeto de SchedulerPolicy , ou o método de SetPolicyValue de um objeto de SchedulerPolicy é passado a uma chave que deve ser modificada usando outros meios como o método de SetConcurrencyLimits .

Classe invalid_scheduler_policy_thread_specification

Essa classe descreve uma exceção gerada quando é realizada uma tentativa de definir os limites de simultaneidade de um objeto de SchedulerPolicy de modo que o valor da chave de MinConcurrency for menor que o valor da chave de MaxConcurrency .

Classe invalid_scheduler_policy_value

Essa classe descreve uma exceção gerada quando uma chave de política de um objeto de SchedulerPolicy é definida como um valor inválido para essa chave.

Classe ISource

A classe de ISource é a interface para todos os blocos de origem. Mensagens de propagação blocos de origem nos blocos de ITarget .

Classe ITarget

A classe de ITarget é a interface para todos os blocos de destino. Os blocos de destino consomem as mensagens são oferecidas a elas por blocos de ISource .

Classe join

Um bloco da mensagem de join é um único destino, a várias origem, propagator_block ordenado que combina junto mensagens do tipo _Type de cada uma de suas fontes.

Classe location

Uma abstração de uma localização física em hardware.

Classe message

O envelope básico de mensagem que contém a carga de dados que está sendo passada entre blocos da mensagem.

Classe message_not_found

Essa classe descreve uma exceção lançada quando um bloco de mensagem não conseguir localizar uma mensagem solicitada.

Classe message_processor

A classe de message_processor é a classe base abstrata para processamento de objetos de message . Não há nenhuma garantia na ordem das mensagens.

Classe missing_wait

Essa classe descreve uma exceção gerada quando há ainda tarefas agendadas para um objeto de task_group ou de structured_task_group no momento em que o destruidor do objeto seja executado. Essa exceção será gerada se o destruidor nunca é atingido devido a uma pilha que desenrola como resultado de uma exceção.

Classe multi_link_registry

O objeto de multi_link_registry é network_link_registry que gerencia vários blocos de origem ou vários blocos de destino.

Classe multitype_join

Um bloco da mensagem de multitype_join várias é uma origem, o bloco da mensagem de um único destino que combina junto mensagens de diferentes tipos de cada uma de suas fontes e oferece uma tupla de mensagens combinada aos destinos.

Classe nested_scheduler_missing_detach

Essa classe descreve uma exceção gerada quando o tempo de execução de simultaneidade detectar que você negligenciou chamar o método de CurrentScheduler::Detach em um contexto que anexa a um segundo agendador que usa o método de Attach do objeto de Scheduler .

Classe network_link_registry

A classe base do sumário de network_link_registry gerencia os links entre a origem e os blocos de destino.

Classe operation_timed_out

Essa classe descreve uma exceção gerada quando uma operação foi atingido.

Classe ordered_message_processor

ordered_message_processor é message_processor que permite que os blocos de mensagem processar mensagens na ordem em que foram recebidas.

Classe overwrite_buffer

Um bloco da mensagem de overwrite_buffer é uma para mais idiomas de destino, várias origem, propagator_block ordenado capaz de armazenar uma única mensagem por vez. As novas mensagens substituem tinham anteriormente.

Classe progress_reporter

A classe de repórter de progresso permite relatar notificações de progresso de um tipo específico. Cada objeto progress_reporter é associado a uma ação ou a uma operação assíncrona específica.

Classe propagator_block

A classe de propagator_block é uma classe base abstrata para os blocos de mensagem que é uma origem e destino. Combina a funcionalidade das classes de source_block e de target_block .

Classe reader_writer_lock

Uma gravador- preferência fila- baseado no bloqueio de leitor/gravador com o local que gerencia somente. O bloqueio concede o primeiro em - o primeiro out (FIFO) de acesso aos gravadores e morre de fome leitores com uma carga contínua de gravadores.

Classe ScheduleGroup

Representa uma abstração para um grupo de agendas. Os grupos de agendas organizam um conjunto de trabalhos relacionados que se beneficiam de ser agendados em datas próximas temporariamente, executando outra tarefa no mesmo grupo antes de passar para outro grupo ou espaçadamente, executando vários itens dentro do mesmo grupo no mesmo nó NUMA ou soquete físico.

Classe Scheduler

Representa uma abstração para um agendador de tempo de execução de simultaneidade.

Classe scheduler_not_attached

Essa classe descreve uma exceção gerada quando uma operação é executada que requer um agendador ser anexado ao contexto atual e um não é.

Classe scheduler_resource_allocation_error

Essa classe descreve uma exceção lançada por causa de uma falha adquirir um recurso crítico no tempo de execução de simultaneidade.

Classe scheduler_worker_creation_error

Essa classe descreve uma exceção lançada por causa de uma falha ao criar um contexto de trabalho do em tempo de execução de simultaneidade.

Classe SchedulerPolicy

A classe SchedulerPolicy contém um conjunto de pares de chave/valor, um para cada elemento de política, que controlam o comportamento de uma instância do agendador.

Classe simple_partitioner

A classe de simple_partitioner representa um particionamento estático do intervalo iterada sobre por parallel_for. O partitioner divide o intervalo em partes de modo que cada parte tem pelo menos o número de iterações especificadas pelo tamanho da parte.

Classe single_assignment

Um bloco da mensagem de single_assignment é uma para mais idiomas de destino, várias origem, propagator_block ordenado capaz de armazenar um único para gravação, uma vez que message.

Classe single_link_registry

O objeto de single_link_registry é network_link_registry que gerencia o bloco apenas um único de origem ou de destino.

Classe source_block

A classe de source_block é uma classe base abstrata para blocos de origem somente. A classe fornece verificações básicas da funcionalidade de gerenciamento de link bem como de erro comum.

Classe source_link_manager

O objeto de source_link_manager gerencia os links de rede do bloco de mensagem aos blocos de ISource .

Classe static_partitioner

A classe de static_partitioner representa um particionamento estático do intervalo iterada sobre por parallel_for. O partitioner divide o intervalo em tantas partes como há trabalhadores disponíveis para o agendador do underyling.

Classe structured_task_group

A classe representa uma coleção de structured_task_group altamente estruturados de trabalho paralelo. Você pode enfileirar de tarefas paralelas individuais em structured_task_group usando objetos de task_handle , e espera-os para ser concluído, ou cancelá-lo o grupo de trabalho antes que seja executada, que anulará todas as tarefas que não começa a execução.

Classe target_block

A classe de target_block é uma classe base abstrata que fornece a funcionalidade básica de gerenciamento do link e os erros que verifica o destino bloqueem somente.

Classe task (Tempo de Execução de Simultaneidade)

A classe da Biblioteca de Padrões Paralela (PPL) task. Um objeto task representa o trabalho que pode ser executado de forma assíncrona, simultaneamente com outras tarefas e trabalhos paralelos produzidos por algoritmos paralelos em tempo de execução de simultaneidade. Gera um resultado do tipo _ResultType na conclusão com êxito. As tarefas de tipo task<void> não produzem resultados. Uma tarefa pode ser esperada e cancelada independentemente de outras tarefas. Também pode ser composto por outras tarefas usando padrões de continuações(then) e de união(when_all) e de escolha(when_any).

Classe task_canceled

Essa classe descreve uma exceção acionada pela camada de tarefas de PPL para forçar o cancelamento da tarefa atual. Também será lançada pelo método get() em tarefa, para uma tarefa cancelada.

Classe task_completion_event

A classe task_completion_event permite que você atrase a execução de uma tarefa até que uma condição seja satisfeita, ou inicie uma tarefa em resposta a um evento externo.

Classe task_continuation_context

A classe task_continuation_context permite que você especifique onde deseja que uma continuação seja executada. Só será útil usar esta classe de um aplicativo da Windows Store. Para aplicativos que não são da Windows Store, o contexto de execução da continuação da tarefa é determinado pelo tempo de execução e não é configurável.

Classe task_group

A classe de task_group representa uma coleção de trabalho paralelo que pode ser esperada sobre ou cancelado.

Classe task_handle

A classe de task_handle representa um item de trabalho paralelo individual. Encapsula as instruções e os dados necessários para executar um bico de trabalho.

task_options Classe (Tempo de Execução de Simultaneidade)

Representa as opções permitidas para criar uma tarefa

Classe timer

Um bloco da mensagem de timer é um único destino source_block capaz de enviar uma mensagem ao destino depois que um intervalo especificado de tempo decorrido ou em intervalos específicos.

Classe transformer

Um bloco da mensagem de transformer é um único destino, várias origem, propagator_block ordenado que podem aceitar mensagens de um tipo e é capaz de armazenar um número ilimitado de mensagens de um tipo diferente.

Classe unbounded_buffer

Um bloco da mensagem de unbounded_buffer é uma para mais idiomas de destino, várias origem, propagator_block ordenado capaz de armazenar um número ilimitado de mensagens.

Classe unsupported_os

Essa classe descreve uma exceção acionada quando um sistema operacional sem suporte é usado.

Estruturas

Nome

Descrição

Estrutura DispatchState

A estrutura de DispatchState é usada para transferir o estado para o método de IExecutionContext::Dispatch . Descreve as condições sob as quais o método de Dispatch é invocado em uma interface de IExecutionContext .

Estrutura IExecutionContext

Uma interface para um contexto de execução que possa ser executado em um processador virtual pode ser alternado e cooperativa contexto.

Estrutura IExecutionResource

Uma abstração para um thread de hardware.

Estrutura IResourceManager

Uma interface para o Gerenciador de Recursos de tempo de execução de simultaneidade. Esta é a interface pelos agendadores que se comunicam com o Gerenciador de Recursos.

Estrutura IScheduler

Uma interface para uma abstração de um agendador de trabalho. O Gerenciador de Recursos de tempo de execução de simultaneidade usa essa interface para se comunicar com os agendadores de trabalho.

Estrutura ISchedulerProxy

A interface pelos agendadores que se comunicam com o Gerenciador de Recursos de tempo de execução de simultaneidade para negociar a atribuição de recursos.

Estrutura IThreadProxy

Uma abstração para um thread de execução. Dependendo da chave da política de SchedulerType do agendador você cria, o Gerenciador de Recursos conceder-lhe-á um proxy do thread que é voltado por um thread normal do Win32 ou por um thread schedulable (UMS) do modo de usuário. Os threads UMS têm suporte em sistemas operacionais de 64 bits com o Windows 7 e versão posterior.

Estrutura ITopologyExecutionResource

Uma interface para um recurso de execução conforme definido pelo Gerenciador de Recursos.

Estrutura ITopologyNode

Uma interface para um nó da topologia conforme definido pelo Gerenciador de Recursos. Um nó contém um ou mais recursos de execução.

Estrutura IUMSCompletionList

Representa uma lista de conclusão UMS. Quando os blocos UMS thread, o agendador designado contexto está agendando despachados para tomar uma decisão de agendamento na raiz virtual subjacente do processador quando o thread original estiver bloqueado. Quando o thread original desbloqueia, o sistema operacional enfileira-o à lista de conclusão que é acessível através dessa interface. O agendador poderá ver a lista de conclusão no contexto de agendamento designado ou em qualquer outro local que pesquisa por trabalho.

Estrutura IUMSScheduler

Uma interface para uma abstração de um agendador de trabalho que deseja o Gerenciador de Recursos de tempo de execução de simultaneidade para se entregar o modo de usuário (UMS) schedulable thread. O Gerenciador de Recursos usa essa interface para se comunicar com os agendadores de thread UMS. A interface de IUMSScheduler herda da interface de IScheduler .

Estrutura IUMSThreadProxy

Uma abstração para um thread de execução. Se você deseja que o agendador para ser concedido threads schedulable (UMS) de modo de usuário, defina o valor do elemento SchedulerKind de política do agendador a UmsThreadDefault, e implementa a interface de IUMSScheduler . Os threads UMS só têm suporte em sistemas operacionais de 64 bits com o Windows 7 e versão posterior.

Estrutura IUMSUnblockNotification

Representa uma notificação do Gerenciador de Recursos que um proxy do thread que bloqueasse e irá disparar um retorno ao agendador designado contexto agendando desbloqueou e está pronto para ser agendada. Essa interface não é válido quando o contexto associado de execução do proxy de thread, retornado pelo método de GetContext , é reprogramado.

Estrutura IVirtualProcessorRoot

Uma abstração para um thread de hardware em que um proxy de thread pode ser executado.

Estrutura scheduler_interface

Interface de agendador

scheduler_ptr Estrutura (Tempo de Execução de Simultaneidade)

Representa um ponteiro para um agendador. Essa classe existe para permitir a especificação de um tempo de vida compartilhado usando o shared_ptr ou apenas uma referência simples usando o ponteiro bruto.

Enumerações

Nome

Descrição

Enumeração agent_status

Os estados válidos para agent.

Enumeração Agents_EventType

Os tipos de eventos que podem ser rastreados usando a funcionalidade de rastreamento ofereceram pela biblioteca dos agentes

Enumeração ConcRT_EventType

Os tipos de eventos que podem ser rastreados usando a funcionalidade de rastreamento ofereceram em tempo de execução de simultaneidade.

Enumeração Concrt_TraceFlags

Sinalizadores de rastreamento para os tipos de evento

Enumeração CriticalRegionType

O tipo de região crítico um contexto está no.

Enumeração DynamicProgressFeedbackType

Usado pela política de DynamicProgressFeedback para descrever se os recursos do agendador rebalanced de acordo com as informações coletadas estatística do agendador ou com base apenas em processadores virtuais que não dentro e fora do estado ocioso com as chamadas para os métodos de Activate e de Deactivate na interface de IVirtualProcessorRoot . Para obter mais informações sobre as políticas disponíveis do agendador, consulte Enumeração PolicyElementKey.

Enumeração join_type

O tipo de um bloco da mensagem de join .

Enumeração message_status

As respostas válidos para uma oferta de message objeto a um bloco.

Enumeração PolicyElementKey

Chaves de política que descrevem os aspectos do comportamento do agendador. Cada elemento da política é descrito por um par de valores chave. Para obter mais informações sobre as políticas do agendador e seu impacto em agendadores, consulte Agendador de tarefas (Tempo de Execução de Simultaneidade).

Enumeração SchedulerType

Usado pela política de SchedulerKind para descrever o tipo de threads que o agendador deve utilizar o para subjacentes contextos de execução. Para obter mais informações sobre as políticas disponíveis do agendador, consulte Enumeração PolicyElementKey.

Enumeração SchedulingProtocolType

Usado pela política de SchedulingProtocol para descrever quais o algoritmo de programação será usado para o agendador. Para obter mais informações sobre as políticas disponíveis do agendador, consulte Enumeração PolicyElementKey.

Enumeração SwitchingProxyState

Usado para denotar o estado um proxy do thread está no, quando estiver executando um cooperativo alternância de contexto para um proxy diferente do thread.

Enumeração task_group_status

Descreve o status de execução de um objeto task_group ou structured_task_group. Um valor desse tipo é retornado por vários métodos que esperam que tarefas agendadas para um grupo de trabalho sejam concluídas.

Enumeração WinRTInitializationType

Usado pela política de WinRTInitialization para descrever se e como o Tempo de Execução do Windows será inicializado em segmentos de agendador para um aplicativo executado em sistemas operacionais com a versão Windows 8 ou maior. Para obter mais informações sobre as políticas disponíveis do agendador, consulte Enumeração PolicyElementKey.

Funções

Nome

Descrição

Função Alloc

Atribui um bloco de memória do tamanho especificado de tempo de execução de simultaneidade em cachê Suballocator.

Função asend

Sobrecarregado. Uma operação assíncrona de envio, que agendar uma tarefa propagar os dados para o bloco de destino.

Função cancel_current_task

Cancela a tarefa atualmente em execução. Essa função pode ser chamada de dentro do corpo de uma tarefa para anular a execução da tarefa e fazer com que fique com o estado de canceled. Enquanto ela puder ser usada em resposta à função is_task_cancellation_requested, você também poderá usá-la por si só, para iniciar o cancelamento da tarefa que está em execução atualmente.

Não será um cenário com suporte para chamar essa função se você não estiver dentro do corpo de uma task. Isso resultará em comportamento indefinido como uma falha ou travamento em seu aplicativo.

Função create_async

Cria uma construção assíncrona Tempo de Execução do Windows baseada em um objeto fornecido de função ou lambda de usuário. O tipo de retorno de create_async é um de IAsyncAction^, de IAsyncActionWithProgress<TProgress>^, de IAsyncOperation<TResult>^, ou de IAsyncOperationWithProgress<TResult, TProgress>^ baseado na assinatura lambda passada para o método.

Função create_task

Sobrecarregado. Criar um objeto de tarefa PPL. create_task pode ser usado em qualquer lugar em que você usaria um construtor de tarefas. É fornecido principalmente para conveniência, porque permite o uso da palavra-chave auto durante a criação de tarefas.

Função CreateResourceManager

Retorna uma interface que representa a instância singleton do Gerenciador de recursos do tempo de execução de simultaneidade. O Gerenciador de Recursos é responsável por atribuir recursos a agendadores que desejam cooperar entre si.

Função DisableTracing

Desabilita o rastreamento em tempo de execução de simultaneidade. Esta função é substituída quando o rastreamento ETW é registrado por padrão.

Função EnableTracing

Habilita o rastreamento em tempo de execução de simultaneidade. Esta função é substituída quando o rastreamento ETW agora é ativado por padrão.

Função livre

Libera um bloco de memória alocado anteriormente pelo método Alloc ao Concurrency Runtime Caching Suballocator.

Função get_ambient_scheduler (Tempo de Execução de Simultaneidade)

Função GetExecutionContextId

Retorna um identificador exclusivo que pode ser atribuído a um contexto de execução que implementa a interface de IExecutionContext .

Função GetOSVersion

Retorna a versão do sistema operacional.

Função GetProcessorCount

Retorna o número de threads de hardware no sistema subjacente.

Função GetProcessorNodeCount

Retorna o número de nós NUMA ou de pacotes do processador no sistema subjacente.

Função GetSchedulerId

Retorna um identificador exclusivo que pode ser atribuído a um agendador que implementa a interface de IScheduler .

Função interruption_point

Cria um ponto de interrupção para o cancelamento. Se um cancelar estiver em andamento no contexto onde essa função é chamada, isso gerará uma exceção interna que nulo a execução do trabalho atualmente em execução paralelo. Se o cancelamento não está em andamento, a função não fará nada.

Função is_current_task_group_canceling

Retorna um que indica se o grupo de trabalho que está em execução no contexto atual é embutido no meio do cancelamento ativa (em outras palavras em breve). Observe que se não houver nenhum execução do grupo de trabalho atualmente embutido no contexto atual, false será retornado.

Função is_task_cancellation_requested

Retorna uma indicação se a tarefa que está sendo executada atualmente recebeu uma solicitação para cancelar a execução. O cancelamento é solicitado em uma tarefa se a tarefa foi criada com um token de cancelamento, e a fonte do token associada com esse token for cancelada.

Função make_choice

Sobrecarregado. Constrói um bloco de mensagem de choice de um Scheduler opcional ou ScheduleGroup e duas ou mais fontes de entrada.

Função make_greedy_join

Sobrecarregado. Constrói um bloco de mensagem de greedy multitype_join de um Scheduler opcional ou ScheduleGroup e duas ou mais fontes de entrada.

Função make_join

Sobrecarregado. Constrói um bloco de mensagem de non_greedy multitype_join de um Scheduler opcional ou ScheduleGroup e duas ou mais fontes de entrada.

Função make_task

Um método da fábrica para criar um objeto de task_handle .

Função parallel_buffered_sort

Sobrecarregado. Organiza os elementos em um intervalo especificado em uma ordem nondescending, de acordo com um critério especificado por ordenando um predicado binário, em paralelo. Essa função é semanticamente similar a std::sort que é baseado comparar-, instável, o tipo in-loco exceto que precisam de espaço adicional de O(n) , e requerem a inicialização padrão para os elementos que estão sendo classificados.

Função parallel_for

Sobrecarregado. parallel_for iteração por um intervalo de índices e executar uma função fornecida pelo usuário em cada iteração, em paralelo.

Função parallel_for_each

Sobrecarregado. parallel_for_each aplica uma função especificada para cada elemento dentro de um intervalo, em paralelo. É semanticamente equivalente à função de for_each no namespace de std , exceto que a iteração sobre os elementos é executada em paralelo, e a ordem de iteração não é especificado. O argumento _Func deve dar suporte a um operador da chamada de função do formulário operator()(T) onde o parâmetro T é o tipo de item de contêiner que está sendo iterada sobre.

Função parallel_invoke

Sobrecarregado. Executa os objetos de função fornecidos como parâmetros em paralelo, e é bloqueada até que sejam concluídas executar. Cada objeto de função pode ser uma expressão de lambda, um ponteiro a funcionar, ou qualquer objeto com suporte para o operador na chamada de função com a assinatura void operator()().

Função parallel_radixsort

Sobrecarregado. Organiza os elementos em um intervalo especificado não em ordem decrescente usando um algoritmo de classificação raiz. Essa é uma função estável do tipo que requer uma função de projeção que pode projetar os elementos ser classificado em inteiro não assinado como chaves. A inicialização padrão é necessária para os elementos que estão sendo classificados.

Função parallel_reduce

Sobrecarregado. Calcula a soma de todos os elementos em um intervalo especificado calculando somas parciais sucessivas, ou calcula o resultado de resultados parciais sucessivos obtidos da mesma forma de usar uma operação binária especificada diferente da soma, em paralelo. parallel_reduce é semanticamente similar a std::accumulate, exceto que requer a operação binária ser associativa, e requer um valor de identidade em vez de um valor inicial.

Função parallel_sort

Sobrecarregado. Organiza os elementos em um intervalo especificado em uma ordem nondescending, de acordo com um critério especificado por ordenando um predicado binário, em paralelo. Essa função é semanticamente similar a std::sort que é um tipo comparar- baseado, instável, in-loco.

Função parallel_transform

Sobrecarregado. Aplica um objeto especificado da função a cada elemento em um intervalo de origem, ou a um par de elementos de dois intervalos de origem, e copia valores de retorno do objeto da função em um intervalo de destino, em paralelo. Este funcional é semanticamente equivalente a std::transform.

Função receive

Sobrecarregado. Um geral obtém a implementação, permitindo que um contexto exatamente uma espera dados de origem e filtra os valores aceitos.

Função run_with_cancellation_token

Executa um objeto da função de forma síncrona e imediatamente no contexto de um determinado token de cancelamento.

Função send

Sobrecarregado. Uma operação síncrona de envio, que espera até que o destino aceitar ou diminuir a mensagem.

Função set_ambient_scheduler (Tempo de Execução de Simultaneidade)

Função set_task_execution_resources

Sobrecarregado. Restringe os recursos de execução usados por threads de trabalho internas de tempo de execução de simultaneidade ao conjunto de afinidade especificado.

É válido chamar este método apenas antes que o Gerenciador de Recursos seja criado, ou entre dois tempos de vida do Gerenciador de Recursos. Pode ser chamado várias vezes enquanto o Gerenciador de Recursos não existir no momento da invocação. Depois que um limite de afinidade foi definido, permanece em vigor até a chamada válido seguinte ao método de set_task_execution_resources .

A máscara de afinidade forneceu não precisa ser um subconjunto de máscara de afinidade de processo. A afinidade do processo será atualizada se necessário.

Função swap

Troca os elementos de dois objetos de concurrent_vector .

Função task_from_exception (Tempo de Execução de Simultaneidade)

Função task_from_result (Tempo de Execução de Simultaneidade)

Função Trace_agents_register_name

Associa o nome fornecido ao bloco ou o agente de mensagem no rastreamento ETW.

Função try_receive

Sobrecarregado. Um geral tentativa- obtém a implementação, permitindo que um contexto procure de dados exatamente uma origem e filtra os valores aceitos. Se os dados não estão prontos, o método retornará false.

Função wait

Pausa o contexto atual para um período especificado.

Função when_all

Cria uma tarefa que será concluída com êxito quando todas as tarefas fornecidas como argumentos são concluídas com sucesso.

Função when_any

Sobrecarregado. Cria uma tarefa que será concluída com êxito quando qualquer tarefa fornecida como argumento é concluída com sucesso.

Operadores

Nome

Descrição

Operador operator!=

Testa se o objeto de concurrent_vector no lado esquerdo do operador não é igual ao objeto de concurrent_vector no lado direito.

Operador operator&&

Sobrecarregado. Cria uma tarefa que será concluída com êxito quando ambas as tarefas fornecidas como argumentos são concluídas com sucesso.

Operador operator||

Sobrecarregado. Cria uma tarefa que foi concluída com êxito quando qualquer uma das tarefas fornecidas como argumentos for concluído com êxito.

Operador operator<

Testa se o objeto de concurrent_vector no lado esquerdo do operador é menor que o objeto de concurrent_vector no lado direito.

Operador operator<=

Testa se o objeto de concurrent_vector no lado esquerdo do operador é menor ou igual ao objeto de concurrent_vector no lado direito.

Operador operator==

Testa se o objeto de concurrent_vector no lado esquerdo do operador é igual ao objeto de concurrent_vector no lado direito.

Operador operator>

Testa se o objeto de concurrent_vector no lado esquerdo do operador é maior que o objeto de concurrent_vector no lado direito.

Operador operator>=

Testa se o objeto de concurrent_vector no lado esquerdo do operador é maior ou igual ao objeto de concurrent_vector no lado direito.

Constantes

Nome

Descrição

Constante AgentEventGuid

Uma categoria GUID ({B9B5B78C - 0713 - 4898 - um 21 A.C. 67949DCED07}) que descreve os eventos de ETW disparados pela biblioteca dos agentes em tempo de execução de simultaneidade.

Constante ChoreEventGuid

Uma categoria GUID que descreve os eventos de ETW disparou em tempo de execução de simultaneidade que estão diretamente relacionadas a tarefas ou as tarefas.

Constante ConcRT_ProviderGuid

O provedor GUID do ETW do tempo de execução de simultaneidade.

Constante CONCRT_RM_VERSION_1

Indica o suporte à interface do Gerenciador de Recursos definida no Visual Studio 2010.

Constante ConcRTEventGuid

Uma categoria GUID que descreve os eventos de ETW disparou em tempo de execução de simultaneidade que mais especificamente não são descritos por outra categoria.

Constante ContextEventGuid

Uma categoria GUID que descreve os eventos de ETW disparou em tempo de execução de simultaneidade que estão diretamente relacionadas aos contextos.

Constante COOPERATIVE_TIMEOUT_INFINITE

Valor que indica que uma espera nunca deve expirar.

Constante COOPERATIVE_WAIT_TIMEOUT

Valor que indica que um programado de espera expire.

Constante INHERIT_THREAD_PRIORITY

Valor especial para a chave ContextPriority de política que indica que a prioridade de thread de todos os contextos no agendador deve ser igual à do thread que criou o agendador.

Constante LockEventGuid

Uma categoria GUID que descreve os eventos de ETW disparou em tempo de execução de simultaneidade que estão diretamente relacionadas aos bloqueios.

Constante MaxExecutionResources

O valor especial para a política MinConcurrency fecha e MaxConcurrency. As opções para o número de hardware thread no computador na ausência de outras restrições.

Constante PPLParallelForeachEventGuid

Uma categoria GUID que descreve os eventos de ETW acionados em tempo de execução de simultaneidade que estão diretamente relacionadas ao uso da função de parallel_for_each .

Constante PPLParallelForEventGuid

Uma categoria GUID que descreve os eventos de ETW acionados em tempo de execução de simultaneidade que estão diretamente relacionadas ao uso da função de parallel_for .

Constante PPLParallelInvokeEventGuid

Uma categoria GUID que descreve os eventos de ETW acionados em tempo de execução de simultaneidade que estão diretamente relacionadas ao uso da função de parallel_invoke .

Constante ResourceManagerEventGuid

Uma categoria GUID que descreve os eventos de ETW disparou em tempo de execução de simultaneidade que estão diretamente relacionadas ao gerenciador de recursos.

Constante ScheduleGroupEventGuid

Uma categoria GUID que descreve os eventos de ETW disparou em tempo de execução de simultaneidade que estão diretamente relacionadas aos grupos de agenda.

Constante SchedulerEventGuid

Uma categoria GUID que descreve os eventos de ETW disparou em tempo de execução de simultaneidade que estão diretamente relacionadas à atividade do agendador.

Constante VirtualProcessorEventGuid

Uma categoria GUID que descreve os eventos de ETW disparou em tempo de execução de simultaneidade que estão diretamente relacionadas aos processadores virtuais.

Requisitos

Cabeçalho: agents.h, concrt.h, concrtrm.h, concurrent_priority_queue.h, concurrent_queue.h, concurrent_unordered_map.h, concurrent_unordered_set.h, concurrent_vector.h, internal_concurrent_hash.h, internal_split_ordered_list.h, ppl.h, pplcancellation_token.h, pplconcrt.h, pplinterface.h, ppltasks.h

Consulte também

Outros recursos

Referência (Tempo de Execução de Simultaneidade)