Partilhar via


Estrutura IResourceManager

Uma interface para o Gestor de Recursos do Concurrency Runtime. Esta é a interface pela qual os agendadores comunicam com o Gestor de Recursos.

Sintaxe

struct IResourceManager;

Membros

Enumerações Públicas

Nome Description
IResourceManager::OSVersion Um tipo enumerado que representa a versão do sistema operativo.

Métodos Públicos

Nome Description
IResourceManager::CreateNodeTopology Presente apenas em compilações de debug do runtime, este método é um gancho de teste concebido para facilitar o teste do Gestor de Recursos em variadas topologias de hardware, sem exigir que o hardware corresponda à configuração. Com as versões de retalho do runtime, este método regressa sem realizar qualquer ação.
IResourceManager::GetAvailableNodeCount Devolve o número de nós disponíveis ao Gestor de Recursos.
IResourceManager::GetFirstNode Devolve o primeiro nó na ordem de enumeração, conforme definido pelo Gestor de Recursos.
IResourceManager::Reference Incrementa a contagem de referências na instância do Gestor de Recursos.
IResourceManager::RegisterScheduler Regista um agendador no Gestor de Recursos. Uma vez registado o agendador, deve comunicar com o Gestor de Recursos através da ISchedulerProxy interface devolvida.
IResourceManager::Release Diminui a contagem de referências na instância do Gestor de Recursos. O Gestor de Recursos é destruído quando a sua contagem de referências passa para 0.

Observações

Use a função CreateResourceManager para obter uma interface para a instância singleton do Resource Manager. O método incrementa a contagem de referências no Resource Manager, e deve invocar o método IResourceManager::Release para libertar a referência quando terminar com o Resource Manager. Normalmente, cada escalonador que criar invocará este método durante a sua criação e libertará a referência para o Gestor de Recursos após o encerramento.

Hierarquia de herança

IResourceManager

Requerimentos

Cabeçalho: concrtrm.h

Namespace: simultaneidade

IResourceManager::Método CreateNodeTopology

Presente apenas em compilações de depuração do tempo de execução, este método é um ponto de teste concebido para facilitar o teste do Gestor de Recursos em topologias de hardware variadas, sem exigir que o hardware corresponda à configuração. Com as versões de retalho do runtime, este método regressa sem realizar qualquer ação.

virtual void CreateNodeTopology(
    unsigned int nodeCount,
    _In_reads_(nodeCount) unsigned int* pCoreCount,
    _In_reads_opt_(nodeCount) unsigned int** pNodeDistance,
    _In_reads_(nodeCount) unsigned int* pProcessorGroups) = 0;

Parâmetros

NodeCount
O número de nós de processador a serem simulados.

pCoreCount
Um array que especifica o número de núcleos em cada nó.

pNodeDistance
Uma matriz que especifica a distância entre quaisquer dois nós. Este parâmetro pode ter o valor NULL.

pProcessorGroups
Uma matriz que especifica o grupo de processadores ao qual cada nó pertence.

Observações

invalid_argument é lançado se o parâmetro nodeCount tiver o valor 0 que foi passado, ou se o parâmetro pCoreCount tiver o valor NULL.

invalid_operation é lançado se este método for chamado enquanto existem outros escalonadores no processo.

IResourceManager::GetAvailableNodeCount Método

Devolve o número de nós disponíveis ao Gestor de Recursos.

virtual unsigned int GetAvailableNodeCount() const = 0;

Valor de retorno

O número de nós disponíveis para o Gestor de Recursos.

IResourceManager::GetFirstNode Método

Retorna o primeiro nó na ordem de enumeração conforme definido pelo Gerente de Recursos.

virtual ITopologyNode* GetFirstNode() const = 0;

Valor de retorno

O primeiro nó na ordem de enumeração definida pelo Gestor de Recursos.

IResourceManager::OSVersion Enumeration

Um tipo enumerado que representa a versão do sistema operativo.

enum OSVersion;

IResourceManager::Método de Referência

Incrementa a contagem de referências na instância do Gestor de Recursos.

virtual unsigned int Reference() = 0;

Valor de retorno

A contagem de referências resultante.

Método IResourceManager::RegisterScheduler

Regista um agendador no Gestor de Recursos. Uma vez registado o agendador, deve comunicar com o Gestor de Recursos através da ISchedulerProxy interface devolvida.

virtual ISchedulerProxy *RegisterScheduler(
    _Inout_ IScheduler* pScheduler,
    unsigned int version) = 0;

Parâmetros

pScheduler
Uma IScheduler interface para o agendador a ser registada.

Versão
A versão da interface de comunicação que o agendador utiliza para comunicar com o Gestor de Recursos. A utilização de uma versão permite ao Gestor de Recursos evoluir a interface de comunicação, ao mesmo tempo que permite aos agendadores aceder a funcionalidades mais antigas. Os agendadores que desejem utilizar as funcionalidades do Gestor de Recursos presentes no Visual Studio 2010 devem usar a versão CONCRT_RM_VERSION_1.

Valor de retorno

A interface ISchedulerProxy que o Gestor de Recursos associou ao seu agendador. O seu agendador deve usar esta interface para comunicar com o Gestor de Recursos a partir deste ponto.

Observações

Use este método para iniciar a comunicação com o Gestor de Recursos. O método associa a interface IScheduler do seu agendador a uma interface ISchedulerProxy e devolve-a. Pode usar a interface devolvida para solicitar recursos de execução para uso pelo seu agendador, ou para subscrever threads com o Gestor de Recursos. O Gestor de Recursos usará elementos da política do agendador devolvida pelo método IScheduler::GetPolicy para determinar que tipo de threads serão necessários para executar o trabalho. Se a sua SchedulerKind chave de política tiver o valor UmsThreadDefault e o valor for lido novamente da política como UmsThreadDefault, a interface IScheduler passada ao método deve ser do tipo IUMSScheduler.

O método lança uma invalid_argument exceção se o parâmetro pScheduler tiver o valor NULL ou se o parâmetro version não for uma versão válida para a interface de comunicação.

IResourceManager::Método de Lançamento

Diminui a contagem de referências na instância do Gestor de Recursos. O Gestor de Recursos é destruído quando a sua contagem de referências passa para 0.

virtual unsigned int Release() = 0;

Valor de retorno

A contagem de referências resultante.

Consulte também

concorrência Namespace
Estrutura de ISchedulerProxy
Estrutura de IScheduler