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 um contexto de execução que pode correr num dado processador virtual e ser cooperativamente comutada por contexto.
Sintaxe
struct IExecutionContext;
Membros
Métodos Públicos
| Nome | Description |
|---|---|
| IExecutionContext::Dispatch | O método que é chamado quando um proxy de thread começa a executar um determinado contexto de execução. Esta deve ser a rotina principal de trabalho para o seu programador de tarefas. |
| IExecutionContext::GetId | Devolve um identificador único para o contexto de execução. |
| IExecutionContext::GetProxy | Devolve uma interface para o proxy do thread que está a executar este contexto. |
| IExecutionContext::GetScheduler | Devolve uma interface ao escalonador a que este contexto de execução pertence. |
| IExecutionContext::SetProxy | Associa um proxy de thread a este contexto de execução. O proxy de thread associado invoca este método mesmo antes de começar a executar o método de contexto Dispatch. |
Observações
Se estiver a implementar um agendador personalizado que interacente com o Gestor de Recursos do Concurrent Runtime, terá de implementar a IExecutionContext interface. As threads criadas pelo Gestor de Recursos realizam trabalho em nome do seu agendador ao executar o método IExecutionContext::Dispatch.
Hierarquia de herança
IExecutionContext
Requerimentos
Cabeçalho: concrtrm.h
Namespace: simultaneidade
IExecutionContext::Dispatch Método
O método que é chamado quando um proxy de thread começa a executar um determinado contexto de execução. Esta deve ser a rotina principal do trabalhador para o seu agendador.
virtual void Dispatch(_Inout_ DispatchState* pDispatchState) = 0;
Parâmetros
pDispatchState
Um apontador para o estado em que este contexto de execução está a ser distribuído. Para mais informações sobre o estado do despacho, consulte DispatchState.
o método IExecutionContext::GetId
Devolve um identificador único para o contexto de execução.
virtual unsigned int GetId() const = 0;
Valor de retorno
Um identificador inteiro único.
Observações
Deve usar o método GetExecutionContextId para obter um identificador único para o objeto que implementa a IExecutionContext interface, antes de usar a interface como parâmetro para os métodos fornecidos pelo Gestor de Recursos. Espera-se que devolvas o mesmo identificador quando a GetId função é invocada.
Um identificador obtido de uma fonte diferente pode resultar num comportamento indefinido.
IExecutionContext::Método GetProxy
Devolve uma interface para o proxy do thread que está a executar este contexto.
virtual IThreadProxy* GetProxy() = 0;
Valor de retorno
Uma interface IThreadProxy. Se o proxy de thread do contexto de execução não tiver sido inicializado com uma chamada para SetProxy, a função deve devolver NULL.
Observações
O Gestor de Recursos invocará o SetProxy método num contexto de execução, com uma IThreadProxy interface como parâmetro, antes de introduzir o Dispatch método no contexto. Espera-se que armazene este argumento e o devolva em chamadas para GetProxy().
IExecutionContext::GetScheduler Método
Devolve uma interface para o escalonador a que pertence este contexto de execução.
virtual IScheduler* GetScheduler() = 0;
Valor de retorno
Uma interface IScheduler.
Observações
É obrigatório inicializar o contexto de execução com uma interface válida IScheduler antes de o usar como parâmetro para métodos fornecidos pelo Gestor de Recursos.
IExecutionContext::Método SetProxy
Associa um proxy de thread a este contexto de execução. O proxy de thread associado invoca este método mesmo antes de começar a executar o Dispatch do método contexto.
virtual void SetProxy(_Inout_ IThreadProxy* pThreadProxy) = 0;
Parâmetros
pThreadProxy
Uma interface para o proxy de thread que está prestes a entrar no Dispatch método neste contexto de execução.
Observações
Espera-se que guarde o parâmetro pThreadProxy e o devolva numa chamada ao GetProxy método. O Gestor de Recursos garante que o proxy de thread associado ao contexto de execução não será alterado enquanto o proxy de thread estiver a executar o Dispatch método.
Consulte também
concorrência Namespace
Estrutura de IScheduler
Estrutura IThreadProxy