Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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