Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma interface para o Resource Manager do Runtime de Simultaneidade. Essa é a interface pela qual os agendadores se comunicam com o Resource Manager.
Sintaxe
struct IResourceManager;
Membros
Enumerações públicas
| Nome | Descrição |
|---|---|
| IResourceManager::OSVersion | Um tipo enumerado que representa a versão do sistema operacional. |
Métodos públicos
| Nome | Descrição |
|---|---|
| IResourceManager::CreateNodeTopology | Presente somente em builds de depuração do runtime, esse método é um gancho de teste projetado para facilitar a testagem do Resource Manager em topologias de hardware variadas, sem exigir que o hardware real corresponda à configuração. Com builds de varejo do runtime, esse método retornará sem executar nenhuma ação. |
| IResourceManager::GetAvailableNodeCount | Retorna o número de nós disponíveis para o Resource Manager. |
| IResourceManager::GetFirstNode | Retorna o primeiro nó na ordem de enumeração conforme definido pelo Resource Manager. |
| IResourceManager::Reference | Incrementa a contagem de referência na instância do Resource Manager. |
| IResourceManager::RegisterScheduler | Registra um agendador com o Resource Manager. Depois que o agendador for registrado, ele deverá se comunicar com o Resource Manager usando a interface ISchedulerProxy retornada. |
| IResourceManager::Release | Diminui a contagem de referência na instância do Resource Manager. O Resource Manager é destruído quando sua contagem de referência vai para 0. |
Comentários
Use a função CreateResourceManager para obter uma interface para a instância de Resource Manager singleton. O método incrementa uma contagem de referência no Resource Manager, e você deve invocar o método IResourceManager::Release para liberar a referência quando terminar de usar o Resource Manager. Normalmente, cada agendador criado invocará esse método durante a criação e liberará a referência ao Resource Manager depois que ele for desligado.
Hierarquia de herança
IResourceManager
Requisitos
Cabeçalho: concrtrm.h
Namespace: concurrency
Método IResourceManager::CreateNodeTopology
Presente somente em builds de depuração do runtime, esse método é um gancho de teste projetado para facilitar a testagem do Resource Manager em topologias de hardware variadas, sem exigir que o hardware real corresponda à configuração. Com builds de varejo do runtime, esse método retornará sem executar nenhuma 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 que estão sendo simulados.
pCoreCount
Uma matriz que especifica o número de núcleos em cada nó.
pNodeDistance
Uma matriz que especifica a distância do nó entre dois nós. O parâmetro pode ter o valor NULL.
pProcessorGroups
Uma matriz que especifica o grupo de processadores ao qual cada nó pertence.
Comentários
invalid_argument é gerada se o parâmetro nodeCount tiver o valor 0 passado ou se o parâmetro pCoreCount tiver o valor NULL.
invalid_operation será gerada se esse método for chamado enquanto outros agendadores existirem no processo.
Método IResourceManager::GetAvailableNodeCount
Retorna o número de nós disponíveis para o Resource Manager.
virtual unsigned int GetAvailableNodeCount() const = 0;
Valor de retorno
O número de nós disponíveis para o Resource Manager.
Método IResourceManager::GetFirstNode
Retorna o primeiro nó na ordem de enumeração conforme definido pelo Resource Manager.
virtual ITopologyNode* GetFirstNode() const = 0;
Valor de retorno
O primeiro nó na ordem de enumeração conforme definido pelo Resource Manager.
Enumeração IResourceManager::OSVersion
Um tipo enumerado que representa a versão do sistema operacional.
enum OSVersion;
Método IResourceManager::Reference
Incrementa a contagem de referência na instância do Resource Manager.
virtual unsigned int Reference() = 0;
Valor de retorno
A contagem de referência resultante.
Método IResourceManager::RegisterScheduler
Registra um agendador com o Resource Manager. Depois que o agendador for registrado, ele deverá se comunicar com o Resource Manager usando a interface ISchedulerProxy retornada.
virtual ISchedulerProxy *RegisterScheduler(
_Inout_ IScheduler* pScheduler,
unsigned int version) = 0;
Parâmetros
pScheduler
Uma interface IScheduler para o agendador a ser registrado.
version
A versão da interface de comunicação que o agendador está usando para se comunicar com o Resource Manager. O uso de uma versão permite que o Resource Manager evolua a interface de comunicação, permitindo que os agendadores obtenham acesso a recursos mais antigos. Os agendadores que desejam usar recursos do Resource Manager presentes no Visual Studio 2010 devem usar a versão CONCRT_RM_VERSION_1.
Valor de retorno
A interface ISchedulerProxy que o Resource Manager associou ao seu agendador. Seu agendador deve usar essa interface para se comunicar com o Resource Manager a partir deste ponto.
Comentários
Use esse método para iniciar a comunicação com o Resource Manager. O método associa a interface IScheduler do agendador a uma interface ISchedulerProxy e a devolve para você. Você pode usar a interface retornada para solicitar recursos de execução para uso pelo agendador ou para assinar threads com o Resource Manager. O Resource Manager usará elementos de política da política do agendador retornada pelo método IScheduler::GetPolicy para determinar de que tipo de threads o agendador precisará para executar o trabalho. Se sua chave de política SchedulerKind tiver o valor UmsThreadDefault e o valor for lido de volta da política como o valor UmsThreadDefault, a interface IScheduler passada para o método deverá ser uma interface IUMSScheduler.
O método gera uma exceção invalid_argument 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.
Método IResourceManager::Release
Diminui a contagem de referência na instância do Resource Manager. O Resource Manager é destruído quando sua contagem de referência vai para 0.
virtual unsigned int Release() = 0;
Valor de retorno
A contagem de referência resultante.
Confira também
Namespace de simultaneidade
Estrutura ISchedulerProxy
Estrutura IScheduler