Estrutura IUMSScheduler
Uma interface para uma abstração de um agendador de trabalho que deseja que o Resource Manager do Runtime de Simultaneidade entregue a ela threads UMS (programáveis no modo de usuário). O Resource Manager usa essa interface para se comunicar com agendadores de thread UMS. A interface IUMSScheduler
herda da interface IScheduler
.
Sintaxe
struct IUMSScheduler : public IScheduler;
Membros
Métodos públicos
Nome | Descrição |
---|---|
IUMSScheduler::SetCompletionList | Atribui uma interface IUMSCompletionList a um agendador de thread UMS. |
Comentários
Se você estiver implementando um agendador personalizado que se comunica com o Resource Manager e quiser que os threads UMS sejam entregues ao agendador em vez de threads Win32 comuns, você deverá fornecer uma implementação da interface IUMSScheduler
. Além disso, você deve definir o valor da política para que a chave de política do agendador SchedulerKind
seja UmsThreadDefault
. Se a política especificar o thread UMS, a interface IScheduler
, que é passada como um parâmetro para o método IResourceManager::RegisterScheduler, deve ser uma interface IUMSScheduler
.
O Resource Manager é capaz de entregar threads UMS somente em sistemas operacionais que têm o recurso UMS. Os threads UMS têm suporte em sistemas operacionais de 64 bits com a versão do Windows 7 e superior. Se você criar uma política de agendador com a chave SchedulerKind
definida como o valor UmsThreadDefault
e a plataforma subjacente não oferecer suporte à UMS, o valor da chave SchedulerKind
nessa política será alterado para o valor ThreadScheduler
. Você sempre deve ler esse valor de política antes de esperar receber threads UMS.
A interface IUMSScheduler
é uma das extremidades de um canal bidirecional de comunicação entre um agendador e o Resource Manager. A outra extremidade é representada pelas interfaces IResourceManager
e ISchedulerProxy
que são implementadas pelo Resource Manager.
Hierarquia de herança
IUMSScheduler
Requisitos
Cabeçalho: concrtrm.h
Namespace: concurrency
Método IUMSScheduler::SetCompletionList
Atribui uma interface IUMSCompletionList
a um agendador de thread UMS.
virtual void SetCompletionList(_Inout_ IUMSCompletionList* pCompletionList) = 0;
Parâmetros
pCompletionList
A interface de lista de conclusão do agendador. Há uma lista única por agendador.
Comentários
O Resource Manager invocará esse método em um agendador que especifica que ele deseja threads UMS, depois que o agendador solicitar uma alocação inicial de recursos. O agendador pode usar a interface IUMSCompletionList
para determinar quando os proxies de thread UMS forem desbloqueados. Só é válido acessar essa interface de um proxy de thread em execução em uma raiz de processador virtual atribuída ao agendador UMS.
Confira também
Namespace de simultaneidade
PolicyElementKey
Estrutura IScheduler
Estrutura IUMSCompletionList
Estrutura IResourceManager