Enums do namespace de simultaneidade

Enumeração agent_status

Os estados válidos para um agent.

enum agent_status;

Valores

Nome Descrição
agent_canceled O agent foi cancelado.
agent_created O agent foi criado, mas não iniciado.
agent_done O agent foi concluído sem ser cancelado.
agent_runnable O agent foi iniciado, mas não inseriu seu método run.
agent_started O agent 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

Enumeração ConcRT_EventType

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 um desanexação 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 geração de contexto.

Requisitos

Cabeçalho: concrt.h Namespace: simultaneidade

Enumeração Concrt_TraceFlags

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 essa suspensão acontecer, o Resource Manager aguardará que o thread se torne executável e simplesmente o retomará 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 de uma 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 DynamicProgressFeedback 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 Activate e Deactivate na IVirtualProcessorRoot 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 utilizará essas informações estatísticas para reequilibrar recursos em nome do agendador, além do nível de assinatura do thread de hardware subjacente. Para obter mais informações sobre os níveis de assinatura, consulte IExecutionResource::CurrentSubscriptionLevel.

Enumeração join_type

O tipo de um bloco de mensagens join.

enum join_type;

Valores

Nome Descrição
greedy Blocos de mensagens join 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 join não greedy adiam mensagens e tentam consumi-las depois de todos chegarem. É 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 message para um bloco.

enum message_status;

Valores

Nome Descrição
accepted O destino aceitou a mensagem.
declined O destino não aceitou a mensagem.
missed O destino tentou aceitar a mensagem, mas ela não estava mais disponível.
postponed O destino 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 thread do sistema operacional de cada contexto no agendador. Se essa chave for definida como o valor INHERIT_THREAD_PRIORITY, 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 do Windows SetThreadPriority e o valor especial INHERIT_THREAD_PRIORITY

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

Valores válidos: inteiros positivos

Valor padrão: 0, 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 DynamicProgressFeedbackType, ProgressFeedbackEnabled ou ProgressFeedbackDisabled

Valor padrão: ProgressFeedbackEnabled
LocalContextCacheSize Quando a chave de política SchedulingProtocol é definida como o valor EnhanceScheduleGroupLocality, isso especifica o número máximo de contextos executáveis que podem ser armazenados em cache por filas locais do processador virtual. Esses contextos normalmente são executados na ordem UEPS (último a entrar, primeiro a sair) no processador virtual que fez com que eles se tornassem executáveis. Observe que essa chave de política não tem significado quando a chave SchedulingProtocol é definida como o valor EnhanceForwardProgress.

Valores válidos: inteiros não negativos

Valor padrão: 8
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 MinConcurrency for maior que o número de threads de hardware no computador e MaxConcurrency for especificado como MaxExecutionResources, o valor para MaxConcurrency será gerado corresponder ao que está definido para MinConcurrency.

Valores válidos: inteiros positivos e o valor especial MaxExecutionResources

Valor padrão: MaxExecutionResources
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 MaxConcurrency for menor que o número de threads de hardware no computador e MinConcurrency for especificado como MaxExecutionResources, o valor será MinConcurrency reduzido para corresponder ao que está definido para MaxConcurrency.

Valores válidos: inteiros não negativos e o valor especial MaxExecutionResources. Observe que, para políticas de agendador usadas para a construção de agendadores de Runtime de Simultaneidade, o valor 0 é inválido.

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

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

Valor padrão: ThreadScheduler. Isso se traduz em threads Win32 em todos os sistemas operacionais.
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 SchedulingProtocolType, EnhanceScheduleGroupLocality ou EnhanceForwardProgress

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

Valores válidos: inteiros positivos

Valor padrão: 1
WinRTInitialization

Requisitos

Cabeçalho: concrt.h

Enumeração SchedulerType

Usado pela política SchedulerKind para descrever o tipo de thread que o agendador deve utilizar para contextos de execução subjacentes. 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 de UMS (agendamento do modo de usuário) no Runtime de Simultaneidade no Visual Studio 2013. Usar UmsThreadDefault como um valor para a política SchedulerType 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 SchedulingProtocol 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 por meio de grupos de agendamento após a execução de cada tarefa. Contextos desbloqueados normalmente são agendados de modo PEPS (primeiro 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 UPEPS (última a entrar, primeiro a sair) 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á, quando ele está executando uma opção de contexto cooperativa para um proxy de thread diferente.

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 agendador não precisa mais do thread de chamadas e está sendo retornado ao Resource Manager. O contexto que estava sendo despachado não pode mais ser utilizado 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.

Enumeração task_group_status

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

enum task_group_status;

Valores

Nome Descrição
canceled O objeto task_group ou structured_task_group foi cancelado. Uma ou mais tarefas podem não ter sido executadas.
completed As tarefas enfileiradas no objeto task_group ou structured_task_group foram concluídas com êxito.
not_complete As tarefas enfileiradas no objeto task_group 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 Windows 8 de versão 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 apartament multithread.

Requisitos

Cabeçalho: concrt.h

Confira também

Namespace de simultaneidade