Enums do namespace de simultaneidade
agent_status Enumeração
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
Agents_EventType Enumeração
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 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
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 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. |
join_type Enumeração
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.
task_group_status Enumeração
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