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 à static_partitioner classe, mas melhora a afinidade de cache melhorando o 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 classe auto_partitioner representa os métodos padrão parallel_for, parallel_for_each e parallel_transform que são usados para particionar o intervalo sobre o qual iteram. Este método de particionamento utiliza roubo de intervalos para o balanceamento de carga e também permite 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 é um target_block ordenado com múltiplas fontes 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_token. Quando o método em um register é usado para receber uma notificação de quando ocorre o cancelamento cancellation_token, um objeto cancellation_token_registration é retornado como um identificador para a chamada de retorno, para que o chamador possa solicitar que uma chamada de retorno específica não seja mais feita através do uso do método deregister. |
| 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 privadas para o thread, para executar sub-computações locais ao thread sem necessidade de bloqueio durante algoritmos paralelos. No fim da operação paralela, os subcálculos privados da thread podem então ser mesclados em um resultado final. Essa classe pode ser usada em vez de uma variável partilhada e pode resultar numa melhoria de desempenho se houver muita contenção nessa variável partilhada. |
| concurrent_priority_queue Classe | A classe concurrent_priority_queue é um contêiner que permite que vários threads insiram e removam itens simultaneamente. 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 classe concurrent_queue é uma classe de contentor de sequência que permite acesso do tipo 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 em concorrência, acesso a elementos, acesso de iterador e iteração do 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. Permite operações de acréscimo seguro em concorrência, acesso a elementos, acesso a iteradores e percurso de iteradores. |
| 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 class | Esta classe descreve uma exceção lançada quando as chamadas para os métodos Block e Unblock de um objeto Context 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 método CurrentScheduler::Detach é chamado num contexto que não foi anexado a nenhum agendador utilizando o método Attach de um objeto Scheduler. |
| Improper_Scheduler_Reference Classe | Esta classe explica uma exceção que é lançada quando o método Reference é chamado num objeto Scheduler que está a ser desligado, proveniente 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 objeto task_handle é agendado várias vezes usando o método run de um objeto task_group ou structured_task_group sem uma chamada interveniente para o método wait 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 Class | 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 que lhes são oferecidas por blocos ISource. |
| Entrar na turma | Um join bloco de mensagens é um destino único, de múltiplas fontes, ordenado propagator_block que combina mensagens do tipo T de cada uma das suas fontes. |
| Classe de localização | 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. |
| Classe message_processor | 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 objeto task_group ou structured_task_group no momento em que o destruidor desse 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 tipo de message_processor que permite que blocos de mensagens processem mensagens na ordem em que foram recebidas. |
| overwrite_buffer Classe | Um bloco de mensagens overwrite_buffer é um componente ordenado propagator_block com capacidade para vários alvos e várias fontes, capaz de armazenar uma única mensagem de cada vez. Novas mensagens substituem as anteriormente armazenadas. |
| 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 leitor-escritor baseado em fila de preferência de escritor com giro apenas local. O bloqueio concede acesso primeiro a entrar - primeiro a sair (FIFO) a escritores e desfavorece 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 é realizada que requer que um agendador esteja anexado ao contexto atual, mas nenhum está. |
| 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 de erro de criação de trabalhador de agendador | 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 bloco multialvo e multifonte, ordenado para propagator_block capaz de armazenar um único item gravado 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 objeto source_link_manager gere os links da rede de blocos de mensagens para os blocos ISource. |
| 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 usando objetos task_handle e aguardar que elas sejam concluídas ou cancelar o grupo de tarefas antes que elas terminem de executar, o que cancelará 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 do tipo _ResultType quando concluído com sucesso. 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 as continuações (then) e os padrões de junção (when_all) e escolha (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 componente ordenado de múltiplos destinos e múltiplas 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 de Estado de Despacho | A DispatchState estrutura é usada para transferir o estado para o IExecutionContext::Dispatch método. Ele descreve as circunstâncias sob as quais o método Dispatch é invocado numa interface IExecutionContext. |
| Estrutura de IExecutionContext | Uma interface para um contexto de execução que pode ser executado em um processador virtual específico e alternar 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 de 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 thread de execução. Dependendo da chave de política do agendador que criar, o Gestor de Recursos concederá um proxy de thread que é apoiado por um thread Win32 regular ou um thread agendável em modo de utilizador (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 filamento UMS é bloqueado, o contexto de agendamento designado pelo agendador é enviado para decidir o que agendar no processador virtual de base enquanto o filamento 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 específico ou em qualquer outro local onde procurar trabalho. |
| Estrutura IUMSScheduler | Uma interface para uma abstração de um agendador de trabalho que pretende que o Gestor de Recursos do Concurrency Runtime lhe forneça threads agendáveis em modo utilizador (UMS). 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 thread 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 uma vez que o contexto de execução associado ao proxy de thread, retornado do método GetContext, é reagendado. |
| IVirtualProcessorRoot Estrutura | Uma abstração de um thread de hardware num 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 o agent. |
| 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á. |
| DynamicProgressFeedbackType | Usado pela política DynamicProgressFeedback 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 métodos Activate e Deactivate na interface IVirtualProcessorRoot. Para obter mais informações sobre as políticas de agendador disponíveis, consulte PolicyElementKey. |
| join_type | O tipo de bloco de mensagens join. |
| message_status | As respostas válidas para a oferta de um objeto message 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 planificador deve utilizar para os 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 de um proxy de thread quando executa uma mudança de contexto cooperativo para outro proxy de thread. |
| estado_grupo_tarefa | 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 política WinRTInitialization para descrever se e como o Windows Runtime 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 a partir do subalocador de cache da execução concorrente. |
| 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 Windows Runtime com base em uma função lambda ou objeto de função fornecido pelo utilizador. 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 um objeto de tarefa PPL .
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á a ser executado em modo inline no contexto atual está em processo de 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 ordenação in-place baseada em comparação, instável, mas que precisa de O(n) espaço adicional e requer inicialização padrão para os elementos a serem ordenados. |
| Função parallel_for | Sobrecarregado.
parallel_for itera sobre um intervalo de índices e executa uma função definida pelo utilizador 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 ao agente no rastreamento ETW. |
| Função try_receive | Sobrecarregado. Uma implementação geral de try-receive, que permite a um contexto procurar dados de exatamente uma fonte e filtrar os valores aceites. 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 |
|---|---|
| operator!= | 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. |
| ChoreEventGuid | Um GUID de categoria que descreve eventos ETW disparados pelo Concurrency Runtime que estão diretamente relacionados a trabalhos ou tarefas. |
| ConcRT_ProviderGuid | O identificador GUID do fornecedor 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 acionados 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 ultrapassou o limite de tempo. |
| 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 de política MinConcurrency e MaxConcurrency. Por padrão, o número de threads de hardware na máquina é utilizado na ausência de outras restrições. |
| PPLParallelForeachEventGuid | Um GUID de categoria que descreve eventos ETW gerados pelo Concurrency Runtime, que estão diretamente relacionados ao uso da função parallel_for_each. |
| 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 função parallel_invoke. |
| 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_vector.h, internal_concurrent_hash.h, internal_split_ordered_list.h, ppl.h, pplcancellation_token.h, pplconcrt.h, pplinterface.h, ppltasks.h