Partilhar via


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

IScheduler

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