Partilhar via


Estrutura IUMSScheduler

Uma interface para uma abstração de um agendador de trabalho que quer que o Gestor de Recursos do Concurrency Runtime lhe entregue threads agendados em modo utilizador (UMS). O Gestor de Recursos utiliza esta interface para comunicar com os agendadores de threads do UMS. A IUMSScheduler interface herda da IScheduler interface.

Sintaxe

struct IUMSScheduler : public IScheduler;

Membros

Métodos Públicos

Nome Description
IUMSScheduler::SetCompletionList Atribui uma IUMSCompletionList interface a um agendador de threads UMS.

Observações

Se estiver a implementar um agendador personalizado que comunica com o Gestor de Recursos, e quiser que threads UMS sejam entregues ao seu agendador em vez de threads Win32 comuns, deve fornecer uma implementação da IUMSScheduler interface. Além disso, deve definir o valor da política para a chave SchedulerKind de política do escalonador como UmsThreadDefault. Se a política especificar thread UMS, a IScheduler interface que é passada como parâmetro para o método IResourceManager::RegisterScheduler deve ser uma IUMSScheduler interface.

O Gestor de Recursos só consegue fornecer threads UMS em sistemas operativos que possuem o recurso UMS. Sistemas operativos de 64 bits com versão Windows 7 e superiores suportam threads UMS. Se criar uma política de agendamento com a SchedulerKind chave definida para o valor UmsThreadDefault e a plataforma subjacente não suportar UMS, o valor da SchedulerKind chave nessa política será alterado para o valor ThreadScheduler. Deve sempre ler este valor da política antes de esperar receber tópicos UMS.

A IUMSScheduler interface é uma das extremidades de um canal bidirecional de comunicação entre um agendador e o Gestor de Recursos. A outra extremidade é representada pelas interfaces IResourceManager e ISchedulerProxy, que são implementadas pelo Gestor de Recursos.

Hierarquia de herança

IScheduler

IUMSScheduler

Requerimentos

Cabeçalho: concrtrm.h

Namespace: simultaneidade

IUMSScheduler::SetCompletionList Método

Atribui uma IUMSCompletionList interface a um agendador de threads UMS.

virtual void SetCompletionList(_Inout_ IUMSCompletionList* pCompletionList) = 0;

Parâmetros

pCompletionList
A interface da lista de conclusão para o agendador. Existe uma única lista por agendador.

Observações

O Gestor de Recursos invocará este método num escalonador que especifica que quer threads UMS, após o escalonador ter solicitado uma alocação inicial de recursos. O escalonador pode usar a IUMSCompletionList interface para determinar quando os proxies de thread UMS foram desbloqueados. Só é válido aceder a esta interface a partir de um proxy de thread a correr numa raiz de processador virtual atribuída ao agendador UMS.

Consulte também

concorrência Namespace
PolicyElementKey
Estrutura de IScheduler
Estrutura IUMSCompletionList
Estrutura IResourceManager