Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Concurrency namespace fornece classes e funções que lhe dão acesso ao Concurrency Runtime, uma estrutura de programação simultânea para C++. Para obter mais informações, consulte Concurrency Runtime.
Sintaxe
namespace concurrency;
Membros
Typedefs (definições de tipos)
| Nome | Descrição |
|---|---|
runtime_object_identity |
Cada instância de mensagem tem uma identidade que a segue à medida que é clonada e passada entre componentes de mensagens. Este não pode ser o endereço do objeto de mensagem. |
task_status |
Um tipo que representa o estado terminal de 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 *). A 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 *). A TaskProc é chamado para invocar o corpo de uma tarefa. |
Aulas
| Nome | Descrição |
|---|---|
| affinity_partitioner Classe | A affinity_partitioner classe é semelhante à classe, mas melhora a static_partitioner afinidade de cache por sua escolha de mapeamento de subintervalos para threads de trabalho. Ele pode melhorar significativamente o desempenho quando um loop é reexecutado no mesmo conjunto de dados e os dados se encaixam no cache. Observe que o mesmo affinity_partitioner objeto deve ser usado com iterações subsequentes de um loop paralelo que é executado em um determinado conjunto de dados, para se beneficiar da localidade de dados. |
| agent Classe | Uma classe destinada a ser utilizada como classe de base para todos os agentes independentes. Ele é usado para ocultar o estado de outros agentes e interagir usando a passagem de mensagens. |
| auto_partitioner Classe | A auto_partitioner classe representa o método parallel_forparallel_for_each padrão e parallel_transform usa para particionar o intervalo sobre o qual eles iteram. Este método de particionamento emprega roubo de intervalo para balanceamento de carga, bem como cancelamento por iteração. |
| bad_target Classe | Essa classe descreve uma exceção lançada quando um bloco de mensagens recebe um ponteiro para um destino que é inválido para a operação que está sendo executada. |
| chamar Classe | Um call bloco de mensagens é uma multi-fonte, ordenada target_block que invoca uma função especificada ao receber uma mensagem. |
| cancellation_token Classe | A cancellation_token classe representa a capacidade de determinar se alguma operação foi solicitada para cancelar. Um determinado token pode ser associado a um task_group, structured_task_groupou task para fornecer cancelamento implícito. Ele também pode ser sondado para cancelamento ou ter um retorno de chamada registrado para se e quando o associado cancellation_token_source for cancelado. |
| cancellation_token_registration Classe | A cancellation_token_registration classe representa uma notificação de retorno de chamada de um cancellation_tokenarquivo . Quando o método em um cancellation_token é usado para receber notificação de quando o register cancelamento ocorre, um cancellation_token_registration objeto é retornado como um identificador para o retorno de chamada para que o chamador possa solicitar que um retorno de chamada específico não seja mais feito através do uso do deregister método. |
| cancellation_token_source Classe | A cancellation_token_source classe representa a capacidade de cancelar alguma operação cancelável. |
| escolha Classe | Um choice bloco de mensagens é um bloco de várias fontes, de destino único, que representa uma interação de fluxo de controle com um conjunto de fontes. O bloco de escolha aguardará que qualquer uma das várias fontes produza uma mensagem e propagará o índice da fonte que produziu a mensagem. |
| Classe combinável | O combinable<T> objeto destina-se a fornecer cópias de dados thread-private, para executar sub-computações thread-local sem bloqueio durante algoritmos paralelos. No final da operação paralela, os subcálculos privados de thread podem então ser mesclados em um resultado final. Essa classe pode ser usada em vez de uma variável compartilhada e pode resultar em uma melhoria de desempenho se houver muita contenção nessa variável compartilhada. |
| concurrent_priority_queue Classe | A concurrent_priority_queue classe é um contêiner que permite que vários threads enviem e pop simultaneamente itens. Os itens são exibidos em ordem de prioridade, onde a prioridade é determinada por um functor fornecido como um argumento de modelo. |
| concurrent_queue Classe | A concurrent_queue classe é uma classe de contêiner de sequência que permite acesso primeiro a entrar, primeiro a sair aos seus elementos. Ele permite um conjunto limitado de operações seguras para simultaneidade, como push e try_pop. |
| Classe concurrent_unordered_map | A classe concurrent_unordered_map é um contêiner seguro para simultaneidade que controla uma sequência de comprimento variável de elementos do tipo std::pair<const K, _Element_type>. A sequência é representada de uma forma que permite operações de acréscimo seguro para simultaneidade, acesso a elementos, acesso de iterador e travessia de iterador. |
| Classe concurrent_unordered_multimap | A classe concurrent_unordered_multimap é um contêiner seguro para simultaneidade que controla uma sequência de comprimento variável de elementos do tipo std::pair<const K, _Element_type>. A sequência é representada de forma a permitir operações de acréscimo seguro para simultaneidade, acesso a elementos, acesso de iterador e travessia de iterador. |
| Classe concurrent_unordered_multiset | A classe concurrent_unordered_multiset é um contêiner seguro para simultaneidade que controla uma sequência de comprimento variável de elementos do tipo K. A sequência é representada de forma a permitir operações de acréscimo seguro para simultaneidade, acesso a elementos, acesso de iterador e travessia de iterador. |
| Classe concurrent_unordered_set | A classe concurrent_unordered_set é um contêiner seguro para simultaneidade que controla uma sequência de comprimento variável de elementos do tipo K. A sequência é representada de forma a permitir operações de acréscimo seguro para simultaneidade, acesso a elementos, acesso de iterador e travessia de iterador. |
| concurrent_vetor Classe | A concurrent_vector classe é uma classe de contêiner de sequência que permite acesso aleatório a qualquer elemento. Ele permite operações de acréscimo seguro para simultaneidade, acesso a elementos, acesso iterador e travessia de iterador. |
| Classe de contexto | Representa uma abstração para um contexto de execução. |
| context_self_unblock Classe | Essa classe descreve uma exceção lançada quando o Unblock método de um Context objeto é chamado do mesmo contexto. Isso indicaria uma tentativa de um determinado contexto de se desbloquear. |
| context_unblock_unbalanced Classe | Essa classe descreve uma exceção lançada quando as chamadas para os métodos e Unblock de Block um Context objeto não são emparelhadas corretamente. |
| critical_section Classe | Um mutex não reentrante que está explicitamente ciente do Concurrency Runtime. |
| CurrentScheduler Classe | Representa uma abstração para o agendador atual associado ao contexto de chamada. |
| default_scheduler_exists Classe | Essa classe descreve uma exceção lançada quando o Scheduler::SetDefaultSchedulerPolicy método é chamado quando um agendador padrão já existe dentro do processo. |
| Classe do evento | Um evento de redefinição manual que está explicitamente ciente do Concurrency Runtime. |
| improper_lock Classe | Esta classe descreve uma exceção lançada quando um bloqueio é adquirido incorretamente. |
| improper_scheduler_attach Classe | Essa classe descreve uma exceção lançada quando o Attach método é chamado em um Scheduler objeto que já está anexado ao contexto atual. |
| improper_scheduler_detach Classe | Essa classe descreve uma exceção lançada quando o CurrentScheduler::Detach método é chamado em um contexto que não foi anexado a nenhum agendador usando o Attach método de um Scheduler objeto. |
| improper_scheduler_reference Classe | Essa classe descreve uma exceção lançada quando o Reference método é chamado em um Scheduler objeto que está sendo desligado, a partir de um contexto que não faz parte desse agendador. |
| invalid_link_target Classe | Essa classe descreve uma exceção lançada quando o link_target método de um bloco de mensagens é chamado e o bloco de mensagens não consegue se vincular ao destino. Isso pode ser o resultado de exceder o número de links que o bloco de mensagens é permitido ou tentar vincular um destino específico duas vezes à mesma fonte. |
| invalid_multiple_scheduling Classe | Essa classe descreve uma exceção lançada quando um task_handle objeto é agendado várias vezes usando o run método de um task_group ou structured_task_group objeto sem uma chamada interveniente para os wait métodos ou run_and_wait . |
| invalid_operation Classe | Essa classe descreve uma exceção lançada quando uma operação inválida é executada que não é descrita com mais precisão por outro tipo de exceção lançada pelo Concurrency Runtime. |
| invalid_oversubscribe_operation Classe | Essa classe descreve uma exceção lançada quando o Context::Oversubscribe método é chamado com o _BeginOversubscription parâmetro definido como false sem uma chamada prévia para o Context::Oversubscribe método com o _BeginOversubscription parâmetro definido como true. |
| invalid_scheduler_policy_key Classe | Essa classe descreve uma exceção lançada quando uma chave inválida ou desconhecida é passada para um SchedulerPolicy construtor de objeto, ou o SetPolicyValue método de um SchedulerPolicy objeto é passado uma chave que deve ser alterada usando outros meios, como o SetConcurrencyLimits método. |
| invalid_scheduler_policy_thread_specification Classe | Essa classe descreve uma exceção lançada quando uma tentativa é feita para definir os limites de simultaneidade de um objeto SchedulerPolicy de modo que o valor da chave MinConcurrency seja menor do que o valor da chave MaxConcurrency. |
| invalid_scheduler_policy_value Classe | Essa classe descreve uma exceção lançada quando uma chave de política de um objeto SchedulerPolicy é definida como um valor inválido para essa chave. |
| Classe ISource | A ISource classe é a interface para todos os blocos de origem. Os blocos de origem propagam mensagens para ITarget blocos. |
| ITarget Classe | A ITarget classe é a interface para todos os blocos de destino. Os blocos de destino consomem mensagens oferecidas a eles por ISource blocos. |
| Entrar na turma | Um join bloco de mensagens é um destino único, multi-fonte, ordenado propagator_block que combina mensagens do tipo T de cada uma de suas fontes. |
| localização Classe | Uma abstração de um local físico no hardware. |
| Classe da mensagem | O envelope de mensagem básica que contém a carga de dados que está sendo passada entre blocos de mensagens. |
| message_not_found Classe | Esta classe descreve uma exceção lançada quando um bloco de mensagens não consegue encontrar uma mensagem solicitada. |
| message_processor Classe | A message_processor classe é a classe base abstrata para processamento de message objetos. Não há garantia sobre a ordenação das mensagens. |
| missing_wait Classe | Essa classe descreve uma exceção lançada quando há tarefas ainda agendadas para um task_group objeto ou structured_task_group no momento em que o destruidor do objeto é executado. Essa exceção nunca será lançada se o destruidor for atingido devido a um desenrolamento de pilha como resultado de uma exceção. |
| multi_link_registry Classe | O multi_link_registry objeto é um network_link_registry que gerencia vários blocos de origem ou vários blocos de destino. |
| multitype_join Classe | Um multitype_join bloco de mensagens é um bloco de mensagens de várias fontes e de destino único que combina mensagens de diferentes tipos de cada uma de suas fontes e oferece uma tupla de mensagens combinadas para seus alvos. |
| nested_scheduler_missing_detach Classe | Essa classe descreve uma exceção lançada quando o Concurrency Runtime deteta que você negligenciou chamar o CurrentScheduler::Detach método em um contexto anexado a um segundo agendador usando o AttachScheduler método do objeto. |
| network_link_registry Classe | A network_link_registry classe base abstrata gerencia os links entre os blocos de origem e de destino. |
| operation_timed_out Classe | Esta classe descreve uma exceção lançada quando uma operação atingiu o tempo limite. |
| ordered_message_processor Classe | Um ordered_message_processor é um que permite que os blocos de message_processor mensagens processem mensagens na ordem em que foram recebidas. |
| overwrite_buffer Classe | Um overwrite_buffer bloco de mensagens é um ordenado com vários destinos, várias fontes, propagator_block capaz de armazenar uma única mensagem de cada vez. Novas mensagens substituem as anteriormente retidas. |
| progress_reporter Classe | A classe de relatório de progresso permite relatar notificações de progresso de um tipo específico. Cada objeto progress_reporter está vinculado a uma ação ou operação assíncrona específica. |
| propagator_block Classe | A propagator_block classe é uma classe base abstrata para blocos de mensagens que são origem e destino. Ele combina a funcionalidade de ambas as source_block classes e target_block . |
| reader_writer_lock Classe | Um bloqueio de leitor-gravador baseado em fila de preferência de escritor com rotação apenas local. O bloqueio concede acesso primeiro a entrar - primeiro a sair (FIFO) a escritores e priva os leitores sob uma carga contínua de escritores. |
| Classe ScheduleGroup | Representa uma abstração para um grupo de agenda. Os grupos de agendamento organizam um conjunto de trabalhos relacionados que se beneficiam de serem agendados juntos, seja temporalmente, executando outra tarefa no mesmo grupo antes de passar para outro grupo, ou espacialmente, 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 do Concurrency Runtime. |
| Classe scheduler_not_attached | Esta classe descreve uma exceção lançada quando uma operação é executada que requer que um agendador seja anexado ao contexto atual e um não é. |
| scheduler_resource_allocation_error Classe | Essa classe descreve uma exceção lançada devido a uma falha na aquisição de um recurso crítico no Concurrency Runtime. |
| Classe scheduler_worker_creation_error | Esta classe descreve uma exceção lançada devido a uma falha ao criar um contexto de execução de trabalho no Concurrency Runtime. |
| SchedulerPolicy Classe | A SchedulerPolicy classe contém um conjunto de pares chave/valor, um para cada elemento de política, que controlam o comportamento de uma instância do agendador. |
| simple_partitioner Classe | A simple_partitioner classe representa um particionamento estático do intervalo iterado por parallel_for. O particionador divide o intervalo em blocos de modo que cada bloco tenha pelo menos o número de iterações especificado pelo tamanho do bloco. |
| Classe de Atribuição Única | Um single_assignment bloco de mensagens é um ordenado com vários destinos, várias fontes, propagator_block capaz de armazenar um único bloco de mensagens gravadas uma vez message. |
| single_link_registry Classe | O single_link_registry objeto é um network_link_registry que gerencia apenas um único bloco de origem ou destino. |
| source_block Classe | A source_block classe é uma classe base abstrata para blocos somente fonte. A classe fornece funcionalidade básica de gerenciamento de links, bem como verificações de erros comuns. |
| source_link_manager Classe | O source_link_manager objeto gerencia mensagens bloquear links de rede para ISource blocos. |
| static_partitioner Classe | A static_partitioner classe representa um particionamento estático do intervalo iterado por parallel_for. O particionador divide o intervalo em tantas partes quantas forem os trabalhadores disponíveis para o agendador subjacente. |
| structured_task_group Classe | A structured_task_group classe representa uma coleção altamente estruturada de trabalho paralelo. Você pode enfileirar tarefas paralelas individuais para um structured_task_group objeto usando task_handle e aguardar que eles sejam concluídos ou cancelar o grupo de tarefas antes que eles terminem de executar, o que anulará todas as tarefas que não começaram a execução. |
| target_block Classe | A target_block classe é uma classe base abstrata que fornece funcionalidade básica de gerenciamento de links e verificação de erros para blocos somente de destino. |
| Classe de tarefa (Concurrency Runtime) | A classe PPL task (Parallel Patterns Library). Um task objeto representa o trabalho que pode ser executado de forma assíncrona e simultânea com outras tarefas e trabalho paralelo produzido por algoritmos paralelos no Concurrency Runtime. Produz um resultado de tipo _ResultType na conclusão bem-sucedida. Tarefas do tipo task<void> não produzem resultados. Uma tarefa pode ser esperada e cancelada independentemente de outras tarefas. Ele também pode ser composto com outras tarefas usando continuations(then), e padrões join(when_all) e choice(when_any). |
| task_canceled Classe | Esta classe descreve uma exceção lançada pela camada de tarefas PPL para forçar o cancelamento da tarefa atual. Ele também é lançado pelo get() método na tarefa, para uma tarefa cancelada. |
| Classe Evento de Conclusão de Tarefa | A task_completion_event classe 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. |
| task_continuation_context Classe | A task_continuation_context classe permite que você especifique onde você gostaria que uma continuação fosse executada. Só é útil usar essa classe de um aplicativo UWP. Para aplicativos que não sejam do Tempo de Execução do Windows, o contexto de execução da continuação da tarefa é determinado pelo tempo de execução e não configurável. |
| task_group Classe | A task_group classe representa uma coleção de trabalho paralelo que pode ser aguardado ou cancelado. |
| task_handle Classe | A task_handle classe representa um item de trabalho paralelo individual. Ele encapsula as instruções e os dados necessários para executar uma parte do trabalho. |
| Classe task_options (Concurrency Runtime) | Representa as opções permitidas para criar uma tarefa |
| Classe do temporizador | Um timer bloco de mensagens é um destino source_block único capaz de enviar uma mensagem para o seu destino após um período de tempo especificado ter decorrido ou em intervalos específicos. |
| transformador Classe | Um transformer bloco de mensagens é um destino único, multi-fonte, ordenado propagator_block que pode aceitar mensagens de um tipo e é capaz de armazenar um número ilimitado de mensagens de um tipo diferente. |
| unbounded_buffer Classe | Um unbounded_buffer bloco de mensagens é um ordenado de vários destinos, várias fontes, propagator_block capaz de armazenar um número ilimitado de mensagens. |
| unsupported_os Classe | Esta classe descreve uma exceção lançada quando um sistema operacional sem suporte é usado. |
Estruturas
| Nome | Descrição |
|---|---|
| Estrutura DispatchState | A DispatchState estrutura é usada para transferir o estado para o IExecutionContext::Dispatch método. Ele descreve as circunstâncias em que o método é invocado Dispatch em uma IExecutionContext interface. |
| Estrutura IExecutionContext | Uma interface para um contexto de execução que pode ser executado em um determinado processador virtual e ser alternado cooperativamente de contexto. |
| IExecutionResource Structure | Uma abstração para um thread de hardware. |
| Estrutura IResourceManager | Uma interface para o Gerenciador de Recursos do Concurrency Runtime. Esta é a interface pela qual os agendadores se comunicam com o Gerenciador de Recursos. |
| Estrutura IScheduler | Uma interface para uma abstração de um agendador de trabalho. O Gerenciador de Recursos do Concurrency Runtime usa essa interface para se comunicar com agendadores de trabalho. |
| Estrutura ISchedulerProxy | A interface pela qual os agendadores se comunicam com o Gerenciador de Recursos do Concurrency Runtime para negociar a alocação de recursos. |
| Estrutura IThreadProxy | Uma abstração para um fio de execução. Dependendo da SchedulerType chave de política do agendador que você criar, o Gerenciador de Recursos concederá um proxy de thread que é apoiado por um thread Win32 regular ou um thread de modo de usuário schedulable (UMS). Os threads UMS são suportados em sistemas operacionais de 64 bits com versão Windows 7 e superior. |
| ITopologyExecutionEstrutura de Recursos | Uma interface para um recurso de execução, conforme definido pelo Gerenciador de Recursos. |
| Estrutura ITopologyNode | Uma interface para um nó de 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 um thread UMS é bloqueado, o contexto de agendamento designado pelo agendador é despachado para tomar uma decisão sobre o que agendar na raiz do processador virtual subjacente enquanto o thread original está bloqueado. Quando o thread original é desbloqueado, o sistema operacional o enfileira na lista de conclusão que pode ser acessada por meio dessa interface. O agendador pode consultar a lista de conclusão no contexto de agendamento designado ou em qualquer outro local que procure por trabalho. |
| Estrutura IUMSScheduler | Uma interface para uma abstração de um agendador de trabalho que deseja que o Gerenciador de Recursos do Concurrency Runtime lhe entregue threads UMS (user-mode schedulable). O Resource Manager usa essa interface para se comunicar com agendadores de threads UMS. A IUMSScheduler interface herda da IScheduler interface. |
| Estrutura IUMSThreadProxy | Uma abstração para um fio de execução. Se você quiser que seu agendador receba threads UMS (schedulable user-mode), defina o valor do elemento SchedulerKind de política do agendador como UmsThreadDefault, e implemente a IUMSScheduler interface. Os threads UMS são suportados apenas em sistemas operacionais de 64 bits com versão Windows 7 e superior. |
| Estrutura IUMSUnblockNotification | Representa uma notificação do Gerenciador de Recursos de que um proxy de thread que bloqueou e disparou um retorno ao contexto de agendamento designado do agendador foi desbloqueado e está pronto para ser agendado. Essa interface é inválida quando o contexto de execução associado do proxy de thread, retornado do GetContext método, é reagendado. |
| IVirtualProcessorRoot Estrutura | Uma abstração para um thread de hardware no qual um proxy de thread pode ser executado. |
| scheduler_interface Estrutura | Interface do Agendador |
| Estrutura scheduler_ptr (Concurrency Runtime) | Representa um ponteiro para um agendador. Essa classe existe para permitir a especificação de um tempo de vida compartilhado usando shared_ptr ou apenas uma referência simples usando ponteiro bruto. |
Enumerações
| Nome | Descrição |
|---|---|
| agent_status | Os estados válidos para um agentarquivo . |
| Agents_EventType | Os tipos de eventos que podem ser rastreados usando a funcionalidade de rastreamento oferecida pela Biblioteca de Agentes |
| ConcRT_EventType | Os tipos de eventos que podem ser rastreados usando a funcionalidade de rastreamento oferecida pelo Concurrency Runtime. |
| Concrt_TraceFlags | Sinalizadores de rastreamento para os tipos de evento |
| CriticalRegionType | O tipo de região crítica em que um contexto está dentro. |
| DynamicProgressFeedbackType | Usado pela DynamicProgressFeedback política para descrever se os recursos para o agendador serão rebalanceados de acordo com informações estatísticas coletadas do agendador ou apenas com base em processadores virtuais entrando e saindo do estado ocioso por meio de chamadas para os Activate métodos e Deactivate na IVirtualProcessorRoot interface. Para obter mais informações sobre as políticas de agendador disponíveis, consulte PolicyElementKey. |
| join_type | O tipo de um join bloco de mensagens. |
| message_status | As respostas válidas para uma oferta de um message objeto a um bloco. |
| PolicyElementKey | Chaves de política que descrevem aspetos do comportamento do agendador. Cada elemento de política é descrito por um par chave-valor. Para obter mais informações sobre as políticas do agendador e seu impacto nos agendadores, consulte Agendador de tarefas. |
| Tipo de Agendador | Usado pela SchedulerKind política para descrever o tipo de threads que o agendador deve utilizar para contextos de execução subjacentes. Para obter mais informações sobre as políticas de agendador disponíveis, consulte PolicyElementKey. |
| SchedulingProtocolType | Usado pela SchedulingProtocol política para descrever qual algoritmo de agendamento será utilizado para o agendador. Para obter mais informações sobre as políticas de agendador disponíveis, consulte PolicyElementKey. |
| SwitchingProxyState | Usado para denotar o estado em que um proxy de thread está, quando ele está executando uma alternância de contexto cooperativo para um proxy de thread diferente. |
| task_group_status | Descreve o status de execução de um task_group ou structured_task_group objeto. Um valor desse tipo é retornado por vários métodos que aguardam a conclusão de tarefas agendadas para um grupo de tarefas. |
| WinRTInitializationType | Usado pela WinRTInitialization política para descrever se e como o Tempo de Execução do Windows será inicializado em threads do agendador para um aplicativo executado em sistemas operacionais com versão Windows 8 ou superior. Para obter mais informações sobre as políticas de agendador disponíveis, consulte PolicyElementKey. |
Funções
| Nome | Descrição |
|---|---|
| Função Alloc | Aloca um bloco de memória do tamanho especificado do Subalocador de Cache de Tempo de Execução de Simultaneidade. |
| Função asend | Sobrecarregado. Uma operação de envio assíncrona, que agenda uma tarefa para propagar os dados para o bloco de destino. |
| Função cancel_current_task | Cancela a tarefa em execução no momento. Essa função pode ser chamada de dentro do corpo de uma tarefa para abortar a execução da tarefa e fazer com que ela entre no estado canceled.Não é um cenário suportado chamar essa função se você não estiver dentro do corpo de um task. Isso resultará em um comportamento indefinido, como uma falha ou falta de resposta em seu aplicativo. |
| Função create_async | Cria uma construção assíncrona do Tempo de Execução do Windows com base em um objeto lambda ou de função fornecido pelo usuário. O tipo de retorno de create_async é um dos IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^ou IAsyncOperationWithProgress<TResult, TProgress>^ com base na assinatura do lambda passado para o método. |
| Função create_task | Sobrecarregado. Cria uma tarefa PPL objeto.
create_task pode ser usado em qualquer lugar que você teria usado um construtor de tarefas. É fornecido principalmente por 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 Concurrency Runtime. O Resource Manager é responsável por atribuir recursos a programadores que desejam cooperar entre si. |
| Função DisableTracing | Desabilita o rastreamento no Concurrency Runtime. Esta função foi preterida porque o rastreamento ETW não é registrado por padrão. |
| Função EnableTracing | Permite o rastreamento no Concurrency Runtime. Essa função foi preterida porque o rastreamento ETW agora está ativado por padrão. |
| Função livre | Libera um bloco de memória previamente alocado pelo método Alloc para o Subalocador de Cache de Tempo de Execução de Simultaneidade. |
| Função get_ambient_scheduler (Concurrency Runtime) | |
| Função GetExecutionContextId | Retorna um identificador exclusivo que pode ser atribuído a um contexto de execução que implementa a interface 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 pacotes de processador no sistema subjacente. |
| Função GetSchedulerId | Retorna um identificador exclusivo que pode ser atribuído a um agendador que implementa a interface IScheduler. |
| Função interruption_point | Cria um ponto de interrupção para cancelamento. Se um cancelamento estiver em andamento no contexto em que essa função é chamada, isso lançará uma exceção interna que abortará a execução do trabalho paralelo em execução no momento. Se o cancelamento não estiver em andamento, a função não faz nada. |
| Função is_current_task_group_canceling | Retorna uma indicação se o grupo de tarefas que está sendo executado atualmente em linha no contexto atual está no meio de um cancelamento ativo (ou estará em breve). Observe que, se não houver nenhum grupo de tarefas atualmente em execução inline no contexto atual, false será retornado. |
| Função make_choice | Sobrecarregado. Constrói um bloco de mensagens choice a partir de um Scheduler ou ScheduleGroup opcional e duas ou mais fontes de entrada. |
| Função make_greedy_join | Sobrecarregado. Constrói um bloco de mensagens greedy multitype_join a partir de um Scheduler ou ScheduleGroup opcional e duas ou mais fontes de entrada. |
| Função make_join | Sobrecarregado. Constrói um bloco de mensagens non_greedy multitype_join a partir de um Scheduler ou ScheduleGroup opcional e duas ou mais fontes de entrada. |
| Função make_task | Um método de fábrica para criar um objeto task_handle. |
| Função parallel_buffered_sort | Sobrecarregado. Organiza os elementos em um intervalo especificado em uma ordem não decrescente, ou de acordo com um critério de ordenação especificado por um predicado binário, em paralelo. Esta função é semanticamente semelhante à std::sort na medida em que é uma classificação in-loco baseada em comparação, instável, exceto que precisa de O(n) espaço adicional e requer inicialização padrão para os elementos que estão sendo classificados. |
| Função parallel_for | Sobrecarregado.
parallel_for itera em uma variedade de índices e executa 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 a cada elemento dentro de um intervalo, em paralelo. É semanticamente equivalente à função for_each no namespace std, exceto que a iteração sobre os elementos é executada em paralelo e a ordem de iteração não é especificada. O argumento _Func deve suportar um operador de chamada de função do formulário operator()(T) onde o parâmetro T é o tipo de item do contêiner que está sendo iterado. |
| Função parallel_invoke | Sobrecarregado. Executa os objetos de função fornecidos como parâmetros em paralelo e bloqueia até que tenham terminado a execução. Cada objeto de função pode ser uma expressão lambda, um ponteiro para função ou qualquer objeto que suporte o operador de chamada de função com a assinatura void operator()(). |
| Função parallel_radixsort | Sobrecarregado. Organiza elementos em um intervalo especificado em uma ordem não decrescente usando um algoritmo de classificação radix. Esta é uma função de classificação estável que requer uma função de projeção que pode projetar elementos a serem classificados em chaves inteiras não assinadas. 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 de forma semelhante usando uma operação binária especificada diferente da soma, em paralelo.
parallel_reduce é semanticamente semelhante a std::accumulate, exceto que requer que a operação binária seja 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 não decrescente, ou de acordo com um critério de ordenação especificado por um predicado binário, em paralelo. Esta função é semanticamente semelhante à std::sort na medida em que é uma classificação baseada em comparação, instável e in-loco. |
| Função parallel_transform | Sobrecarregado. Aplica um objeto de função especificado a cada elemento em um intervalo de origem ou a um par de elementos de dois intervalos de origem e copia os valores de retorno do objeto de função em um intervalo de destino, em paralelo. Esta função é semanticamente equivalente a std::transform. |
| receber Função | Sobrecarregado. Uma implementação de recebimento geral, permitindo que um contexto aguarde dados de exatamente uma fonte e filtre os valores que são aceitos. |
| Função run_with_cancellation_token | Executa um objeto de função de forma imediata e síncrona no contexto de um determinado token de cancelamento. |
| Função de envio | Sobrecarregado. Uma operação de envio síncrona, que aguarda até que o destino aceite ou recuse a mensagem. |
| Função set_ambient_scheduler (Concurrency Runtime) | |
| Função set_task_execution_resources | Sobrecarregado. Restringe os recursos de execução usados pelos threads de trabalho internos do Concurrency Runtime ao conjunto de afinidade especificado. É válido chamar esse método somente antes que o Resource Manager tenha sido criado ou entre dois tempos de vida do Resource Manager. Ele pode ser invocado várias vezes, desde que o Gerenciador de Recursos não exista no momento da invocação. Depois que um limite de afinidade for definido, ele permanecerá em vigor até a próxima chamada válida para o método set_task_execution_resources.A máscara de afinidade fornecida não precisa ser um subconjunto da máscara de afinidade do processo. A afinidade do processo será atualizada se necessário. |
| Função swap | Troca os elementos de dois objetos concurrent_vector. |
| Função task_from_exception (Concurrency Runtime) | |
| Função task_from_result (Concurrency Runtime) | |
| Função Trace_agents_register_name | Associa o nome dado ao bloco de mensagem ou agente no rastreamento ETW. |
| Função try_receive | Sobrecarregado. Uma implementação geral try-receive, permitindo que um contexto procure dados de exatamente uma fonte e filtre os valores que são aceitos. Se os dados não estiverem prontos, o método retornará false. |
| Função wait | Pausa o contexto atual por um período de tempo especificado. |
| Função when_all | Cria uma tarefa que será concluída com êxito quando todas as tarefas fornecidas como argumentos forem concluídas com êxito. |
| Função when_any | Sobrecarregado. Cria uma tarefa que será concluída com êxito quando qualquer uma das tarefas fornecidas como argumentos for concluída com êxito. |
Operadores
| Nome | Descrição |
|---|---|
| operador!= | Testa se o concurrent_vector objeto no lado esquerdo do operador não é igual ao concurrent_vector objeto no lado direito. |
| operador&& | Sobrecarregado. Cria uma tarefa que será concluída com êxito quando ambas as tarefas fornecidas como argumentos forem concluídas com êxito. |
operator|| |
Sobrecarregado. Cria uma tarefa que será concluída com êxito quando qualquer uma das tarefas fornecidas como argumentos for concluída com êxito. |
| Operador< | Testa se o concurrent_vector objeto no lado esquerdo do operador é menor do que o concurrent_vector objeto no lado direito. |
| operador<= | Testa se o concurrent_vector objeto no lado esquerdo do operador é menor ou igual ao concurrent_vector objeto no lado direito. |
| operador== | Testa se o concurrent_vector objeto no lado esquerdo do operador é igual ao concurrent_vector objeto no lado direito. |
| Operador> | Testa se o concurrent_vector objeto no lado esquerdo do operador é maior do que o concurrent_vector objeto no lado direito. |
| operador>= | Testa se o concurrent_vector objeto no lado esquerdo do operador é maior ou igual ao concurrent_vector objeto no lado direito. |
Constantes
| Nome | Descrição |
|---|---|
| AgentEventGuid | Um GUID de categoria ({B9B5B78C-0713-4898-A21A-C67949DCED07}) descrevendo eventos ETW disparados pela biblioteca de agentes no Concurrency Runtime. |
| CoreEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados a tarefas ou tarefas. |
| ConcRT_ProviderGuid | O GUID do provedor ETW para o Concurrency Runtime. |
| CONCRT_RM_VERSION_1 | Indica o suporte da interface do Resource Manager definida no Visual Studio 2010. |
| ConcRTEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que não são descritos mais especificamente por outra categoria. |
| ContextEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados a contextos. |
| COOPERATIVE_TIMEOUT_INFINITE | Valor que indica que uma espera nunca deve expirar. |
| COOPERATIVE_WAIT_TIMEOUT | Valor que indica que uma espera expirou. |
| INHERIT_THREAD_PRIORITY | Valor especial para a chave ContextPriority de política indicando que a prioridade de thread de todos os contextos no agendador deve ser a mesma do thread que criou o agendador. |
| LockEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados a bloqueios. |
| MaxExecutionResources | Valor especial para as chaves MinConcurrency de apólice e MaxConcurrency. O padrão é o número de threads de hardware na máquina na ausência de outras restrições. |
| PPLParallelForeachEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados ao uso da parallel_for_each função. |
| PPLParallelForEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados ao uso da parallel_for função. |
| PPLParallelInvokeEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados ao uso da parallel_invoke função. |
| ResourceManagerEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados ao gerenciador de recursos. |
| ScheduleGroupEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados a grupos de agendamento. |
| SchedulerEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados à atividade do agendador. |
| VirtualProcessorEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados a processadores virtuais. |
Requerimentos
Cabeçalho: agents.h, concrt.h, concrtrm.h, concurrent_priority_queue.h, concurrent_queue.h, concurrent_unordered_map.h, concurrent_unordered_set.h, concurrent_vetor.h, internal_concurrent_hash.h, internal_split_ordered_list.h, ppl.h, pplcancellation_token.h, pplconcrt.h, pplinterface.h, ppltasks.h