Compartilhar via


Método de ISchedulerProxy::RequestInitialVirtualProcessors

Solicita uma alocação inicial de raízes de processador virtual.Raiz de cada processador virtual representa a capacidade de executar um thread pode executar o trabalho para o Agendador.

virtual IExecutionResource * RequestInitialVirtualProcessors(
   bool doSubscribeCurrentThread
) =0;

Parâmetros

  • doSubscribeCurrentThread
    Se deseja inscrever-se o thread atual e conta durante a alocação de recursos.

Valor de retorno

O IExecutionResource interface para o segmento atual, se o parâmetro doSubscribeCurrentThread tem o valor true.Se o valor for false, o método retorna NULL.

Comentários

Antes de um Agendador executa qualquer trabalho, ele deve usar esse método para solicitar raízes processador virtual do Gerenciador de recursos.O Gerenciador de recursos irá acessar a diretiva do Agendador usando IScheduler::GetPolicy e use os valores para as chaves de diretiva MinConcurrency, MaxConcurrency e TargetOversubscriptionFactor para determinar quantos segmentos de hardware para atribuir o Agendador inicialmente e quantas raízes de processador virtual para criar para cada thread de hardware.Para obter mais informações sobre como as diretivas de Agendador são usadas para determinar a alocação inicial do Agendador, consulte PolicyElementKey.

O Gerenciador de recursos concede recursos para um programador, chamando o método IScheduler::AddVirtualProcessors com uma lista de raízes de processador virtual.O método é invocado como um retorno de chamada para o Agendador antes que esse método retorna.

Se o Agendador solicitada assinatura para o segmento atual, definindo o parâmetro doSubscribeCurrentThread para true, o método retorna um IExecutionResource interface.A inscrição deve ser terminada mais tarde usando o IExecutionResource::Remove método.

Ao determinar quais segmentos de hardware são selecionados, o Gerenciador de recursos tentará otimizar para afinidade de nó de processador.Se a assinatura é solicitada para o segmento atual, é uma indicação de que o thread atual pretende participar do trabalho atribuído a este agendador.No caso, as raízes de processadores virtuais alocados estão localizadas no nó do processador que o thread atual está em execução, se possível.

O ato de assinatura de um thread aumenta o nível de assinatura do thread de hardware subjacente por um.O nível de assinatura é reduzido por um quando a inscrição é finalizada.Para obter mais informações sobre níveis de assinatura, consulte IExecutionResource::CurrentSubscriptionLevel.

Requisitos

Cabeçalho: concrtrm.h

Namespace: concorrência

Consulte também

Referência

Estrutura de ISchedulerProxy