Compartilhar via


Enums do namespace de concorrência

As seguintes enumerações estão disponíveis no namespace:

agent_status Enumeração

Os estados válidos para um .

enum agent_status;

Valores

Nome Descrição
agent_canceled O foi cancelado.
agent_created O foi criado, porém ainda não foi iniciado.
agent_done O foi concluído sem ser cancelado.
agent_runnable O foi iniciado, mas não inseriu seu método .
agent_started O foi iniciado.

Comentários

Para saber mais, confira Agentes assíncronos.

Requisitos

Cabeçalho: concrt.h

Enumeração Agents_EventType

Os tipos de eventos que podem ser rastreados usando a funcionalidade de rastreamento oferecida pela Biblioteca de Agentes

enum Agents_EventType;

Valores

Nome Descrição
AGENTS_EVENT_CREATE Um tipo de evento que representa a criação de um objeto
AGENTS_EVENT_DESTROY Um tipo de evento que representa a exclusão de um objeto
AGENTS_EVENT_END Um tipo de evento que representa a conclusão de algum processamento
AGENTS_EVENT_LINK Um tipo de evento que representa a vinculação de blocos de mensagens
AGENTS_EVENT_NAME Um tipo de evento que representa o nome de um objeto
AGENTS_EVENT_SCHEDULE Um tipo de evento que representa o agendamento de um processo
AGENTS_EVENT_START Um tipo de evento que representa o início de algum processamento
AGENTS_EVENT_UNLINK Um tipo de evento que representa a desvinculação de blocos de mensagens

Requisitos

Cabeçalho: concrt.h

ConcRT_EventType Enumeração

Os tipos de eventos que podem ser rastreados usando a funcionalidade de rastreamento oferecida pelo Runtime de Simultaneidade.

enum ConcRT_EventType;

Valores

Nome Descrição
CONCRT_EVENT_ATTACH Um tipo de evento que representa o ato de anexar a um agendador.
CONCRT_EVENT_BLOCK Um tipo de evento que representa o ato de um bloqueio de contexto.
CONCRT_EVENT_DETACH Um tipo de evento que representa o ato de uma desacoplagem de um agendador.
CONCRT_EVENT_END Um tipo de evento que marca o início de um par de eventos de início/fim.
CONCRT_EVENT_GENERIC Um tipo de evento usado para eventos diversos.
CONCRT_EVENT_IDLE Um tipo de evento que representa o ato de um contexto ficar ocioso.
CONCRT_EVENT_START Um tipo de evento que marca o início de um par de eventos de início/fim.
CONCRT_EVENT_UNBLOCK Um tipo de evento que representa o ato de desbloquear um contexto.
CONCRT_EVENT_YIELD Um tipo de evento que representa o ato de uma cedência de contexto.

Requisitos

Cabeçalho: concrt.h Namespace: simultaneidade

Concrt_TraceFlags Enumeração

Sinalizadores de rastreamento para os tipos de evento

enum Concrt_TraceFlags;

Valores

Nome Descrição
AgentEventFlag
AllEventsFlag
ContextEventFlag
PPLEventFlag
ResourceManagerEventFlag
SchedulerEventFlag
VirtualProcessorEventFlag

Requisitos

Cabeçalho: concrt.h

Enumeração CriticalRegionType

O tipo de região crítica em que um contexto está.

enum CriticalRegionType;

Valores

Nome Descrição
InsideCriticalRegion Indica que o contexto está dentro de uma região crítica. Quando dentro de uma região crítica, as suspensões assíncronas ficam ocultas do agendador. Se tal suspensão acontecer, o Resource Manager aguardará que o thread se torne executável e simplesmente o retome em vez de invocar o agendador novamente. Todos os bloqueios feitos dentro dessa região devem ser tomados com extremo cuidado.
InsideHyperCriticalRegion Indica que o contexto está dentro de uma região hipercrítica. Quando dentro de uma região hipercrítica, as suspensões síncronas e assíncronas ficam ocultas do agendador. Caso essa suspensão ou bloqueio aconteça, o gerenciador de recursos aguardará que o thread se torne executável e simplesmente o retomará em vez de invocar o agendador novamente. Os bloqueios feitos dentro dessa região nunca devem ser compartilhados com o código em execução fora dessa mesma região. Isso causará um deadlock imprevisível.
OutsideCriticalRegion Indica que o contexto está fora de qualquer região crítica.

Requisitos

Cabeçalho: concrtrm.h

Enumeração DynamicProgressFeedbackType

Usado pela política para descrever se os recursos do agendador serão rebalanceados de acordo com as informações estatísticas coletadas do agendador ou apenas com base em processadores virtuais que entram e saem do estado ocioso por meio de chamadas aos métodos e na interface. Para mais informações sobre políticas de agendador disponíveis, confira PolicyElementKey.

enum DynamicProgressFeedbackType;

Valores

Nome Descrição
ProgressFeedbackDisabled O agendador não coleta informações de progresso. O rebalanceamento é feito com base apenas no nível de assinatura do thread de hardware subjacente. Para obter mais informações sobre os níveis de assinatura, consulte IExecutionResource::CurrentSubscriptionLevel.

Esse valor é reservado para uso pelo runtime.
ProgressFeedbackEnabled O agendador coleta informações de progresso e as passa para o gerenciador de recursos. O gerenciador de recursos usará essas informações estatísticas para reequilibrar os recursos em nome do agendador, além do nível de assinatura associado ao thread de hardware subjacente. Para obter mais informações sobre os níveis de assinatura, consulte IExecutionResource::CurrentSubscriptionLevel.

join_type Enumeração

O tipo de um bloco de mensagens .

enum join_type;

Valores

Nome Descrição
greedy Blocos de mensagens greedy aceitam imediatamente uma mensagem após a propagação. Isso é mais eficiente, mas tem a possibilidade de bloqueio dinâmico, dependendo da configuração de rede.
non_greedy Blocos de mensagens não gananciosos adiam mensagens e tentam consumi-las depois que todos tiverem chegado. É garantido que eles funcionarão, porém, mais devagar.

Requisitos

Cabeçalho: agents.h

message_status Enumeração

As respostas válidas para uma oferta de um objeto para um bloco.

enum message_status;

Valores

Nome Descrição
accepted O destinatário aceitou a mensagem.
declined O destino não aceitou a mensagem.
missed O alvo tentou aceitar a mensagem, mas a mensagem não estava mais disponível.
postponed O alvo adiou a mensagem.

Requisitos

Cabeçalho: agents.h

Enumeração PolicyElementKey

Chaves de política que descrevem aspectos do comportamento do agendador. Cada elemento de política é descrito por um par chave-valor. Para mais informações sobre as políticas do agendador e seu impacto sobre os agendadores, confira Agendador de Tarefas.

enum PolicyElementKey;

Valores

Nome Descrição
ContextPriority A prioridade de threads de sistema operacional de cada contexto no agendador. Se essa chave for definida como o valor , os contextos no agendador herdarão a prioridade do thread que criou o agendador.

Valores válidos: qualquer um dos valores válidos para a função Windows SetThreadPriority e o valor especial INHERIT_THREAD_PRIORITY

Valor padrão:
ContextStackSize O tamanho da pilha reservada de cada contexto no agendador em quilobytes.

Valores válidos: inteiros positivos

Valor padrão: , indicando que o valor padrão do processo para o tamanho da pilha será usado.
DynamicProgressFeedback Determina se os recursos do agendador serão rebalanceados de acordo com as informações estatísticas coletadas do agendador ou apenas com base no nível de assinatura de threads de hardware subjacentes. Para mais informações, confira DynamicProgressFeedbackType.

Valores válidos: um membro da enumeração , ou

Valor padrão:
LocalContextCacheSize Quando a chave de política é definida para o valor , isso especifica o número máximo de contextos executáveis que podem ser enfileirados em cache nas filas locais de cada processador virtual. Esses contextos normalmente são executados na ordem LIFO (último a entrar, primeiro a sair) no processador virtual que faz com que eles se executem. Observe que essa chave de política não tem significado quando a chave é definida como o valor .

Valores válidos: inteiros não negativos

Valor padrão:
MaxConcurrency O nível máximo de simultaneidade desejado pelo agendador. O gerenciador de recursos tentará alocar inicialmente muitos processadores virtuais. O valor especial MaxExecutionResources indica que o nível de simultaneidade desejado é o mesmo que o número de threads de hardware no computador. Se o valor especificado para for maior que o número de threads de hardware na máquina e for especificado como , o valor para será aumentado para corresponder ao valor definido para .

Valores válidos: inteiros positivos e o valor especial

Valor padrão:
MaxPolicyElementKey A chave máxima do elemento de política. Não é uma chave de elemento válida.
MinConcurrency O nível mínimo de simultaneidade que deve ser fornecido ao agendador pelo gerenciador de recursos. O número de processadores virtuais atribuídos a um agendador nunca ficará abaixo do mínimo. O valor especial MaxExecutionResources indica que o nível de simultaneidade mínimo é o mesmo que o número de threads de hardware no computador. Se o valor especificado para for menor que o número de threads de hardware no computador e for especificado como , o valor para será reduzido para coincidir com o que está definido para .

Valores válidos: inteiros não negativos e o valor especial . Note que, para políticas de agendamento usadas na construção de agendadores do Concurrency Runtime, o valor é inválido.

Valor padrão:
SchedulerKind O tipo de threads que o agendador utilizará nos contextos subjacentes de execução. Para mais informações, confira SchedulerType.

Valores válidos: um membro da enumeração , por exemplo,

Valor padrão: . Isso se traduz em threads Win32 em qualquer sistema operacional.
SchedulingProtocol Descreve qual algoritmo de agendamento será usado pelo agendador. Para obter mais informações, confira SchedulingProtocolType.

Valores válidos: um membro da enumeração , ou

Valor padrão:
TargetOversubscriptionFactor Número provisório de processadores virtuais por thread de hardware. O fator de sobrescrição de destino pode ser aumentado pelo Gerenciador de Recursos, se necessário, para atender MaxConcurrency usando os threads de hardware no computador.

Valores válidos: inteiros positivos

Valor padrão:
WinRTInitialization

Requisitos

Cabeçalho: concrt.h

Enumeração de SchedulerType

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

enum SchedulerType;

Valores

Nome Descrição
ThreadScheduler Indica uma solicitação explícita de threads Win32 regulares.
UmsThreadDefault Não há suporte para threads agendáveis no modo de usuário (UMS) no Ambiente de Execução de Concorrência no Visual Studio 2013. Usar como um valor para a política não resultará em um erro. No entanto, um agendador criado com essa política usará por padrão threads Win32.

Requisitos

Cabeçalho: concrt.h

Enumeração SchedulingProtocolType

Usado pela política para descrever qual algoritmo de agendamento será utilizado para o agendador. Para mais informações sobre políticas de agendador disponíveis, confira PolicyElementKey.

enum SchedulingProtocolType;

Valores

Nome Descrição
EnhanceForwardProgress O agendador prefere o round-robin entre os grupos de agendamento após a execução de cada uma das tarefas. Contextos desbloqueados normalmente são agendados em uma ordem de processamento FIFO (primeiro a entrar, primeiro a sair). Os processadores virtuais não armazenam em cache contextos desbloqueados.
EnhanceScheduleGroupLocality O agendador prefere continuar a trabalhar em tarefas dentro do grupo agendado atual antes de migrar para outro grupo agendado. Contextos desbloqueados são armazenados em cache por processador virtual e normalmente são agendados de modo LIFO (Last In, First Out) pelo processador virtual que os desbloqueou.

Requisitos

Cabeçalho: concrt.h

Enumeração SwitchingProxyState

Usado para indicar o estado em que um proxy de thread está ao executar uma troca de contexto cooperativa para outro proxy de thread.

enum SwitchingProxyState;

Valores

Nome Descrição
Blocking Indica que o thread de chamada está bloqueando cooperativamente e deve ser de propriedade exclusiva do chamador até nova execução posterior e realização de outra ação.
Idle Indica que o thread de chamada não é mais necessário para o agendador e está sendo retornado para o Resource Manager. O contexto que foi enviado não está mais acessível pelo Resource Manager.
Nesting Indica que o thread de chamada está aninhando um agendador filho e o chamador precisa dele para anexar a um agendador diferente.

Comentários

Um parâmetro do tipo SwitchingProxyState é passado para o método IThreadProxy::SwitchTo para instruir o Resource Manager como tratar o proxy de thread que está fazendo a chamada.

Para mais informações sobre como esse tipo é usado, confira IThreadProxy::SwitchTo.

task_group_status Enumeração

Descreve o status de execução de um objeto ou . Um valor desse tipo é retornado por vários métodos que aguardam a conclusão de tarefas agendadas para um grupo de tarefas.

enum task_group_status;

Valores

Nome Descrição
canceled O objeto ou foi cancelado. Uma ou mais tarefas podem não ter sido executadas.
completed As tarefas enfileiradas no objeto ou foram concluídas com êxito.
not_complete As tarefas enfileiradas no objeto não foram concluídas. Observe que esse valor não é retornado atualmente pelo Runtime de Simultaneidade.

Requisitos

Cabeçalho: pplinterface.h

Enumeração WinRTInitializationType

Usado pela política WinRTInitialization para descrever se e como o Windows Runtime será inicializado em threads de agendador para um aplicativo executado em sistemas operacionais com versão Windows 8 ou superior. Para mais informações sobre políticas de agendador disponíveis, confira PolicyElementKey.

enum WinRTInitializationType;

Valores

Nome Descrição
DoNotInitializeWinRT Quando o aplicativo é executado em sistemas operacionais com versão Windows 8 ou superior, os threads dentro do agendador não inicializarão o Windows Runtime.
InitializeWinRTAsMTA Quando o aplicativo é executado em sistemas operacionais com versão Windows 8 ou superior, cada thread dentro do agendador inicializará o Windows Runtime e declarará que ele faz parte do apartamento multithreaded.

Requisitos

Cabeçalho: concrt.h

Confira também

Namespace de concorrência