Partilhar via


ICLRTask Interface

Fornece métodos que permitem ao anfitrião fazer pedidos do runtime de linguagem comum (CLR) ou fornecer uma notificação ao CLR sobre a tarefa associada.

Métodos

Método Descrição
Método Abortar Pede que o CLR aborte a tarefa que a instância atual ICLRTask representa.
Método ExitTask Notifica o CLR de que a tarefa associada à instância atual ICLRTask está a terminar e tenta encerrar corretamente a tarefa.
Método GetMemStats Obtém informações estatísticas sobre a utilização de recursos de memória pela tarefa representada pela instância atual ICLRTask .
Método LocksHeld Obtém o número de bloqueios atualmente contidos na tarefa.
NeedsPriorityScheduling Method Obtém um valor que indica se o anfitrião deve atribuir uma prioridade elevada para reagendar a tarefa representada pela instância atual ICLRTask .
Método Reset Informa o CLR de que o anfitrião concluiu uma tarefa e permite que o CLR reutilize a instância atual ICLRTask para representar outra tarefa.
Método RudeAbort Faz com que o CLR aborte imediatamente a tarefa representada pela instância atual ICLRTask , sem a garantia de que os finalizadores serão executados.
Método SetTaskIdentifier Define um identificador exclusivo para a tarefa representada pela instância atual ICLRTask , para utilização na depuração.
Método SwitchIn Notifica o CLR de que a tarefa representada pela instância atual ICLRTask está num estado operável.
Método SwitchOut Notifica o CLR de que a tarefa representada pela instância atual ICLRTask já não está num estado operável.
Método YieldTask Pedidos para que o CLR disponibilize tempo do processador a outras tarefas. O CLR não garante que a tarefa seja colocada num estado em que possa gerar tempo de processamento.

Observações

Um ICLRTask é a representação de uma tarefa para o CLR. Em qualquer momento durante a execução do código, uma tarefa pode ser descrita como em execução ou em espera para ser executada. O anfitrião chama o ICLRTask::SwitchIn método para notificar o CLR de que a tarefa que a instância atual ICLRTask representa está agora num estado operável. Após uma chamada para ICLRTask::SwitchIn, o anfitrião pode agendar a tarefa em qualquer thread do sistema operativo, exceto nos casos em que o runtime requer afinidade de thread, conforme especificado pelas chamadas para os métodos IHostTaskManager::BeginThreadAffinity e IHostTaskManager::EndThreadAffinity . Algum tempo depois, o sistema operativo poderá decidir remover a tarefa do thread e colocá-la num estado de não execução. Por exemplo, isto pode acontecer sempre que a tarefa bloqueia em primitivos de sincronização ou aguarda que as operações de E/S sejam concluídas. O anfitrião chama SwitchOut para notificar o CLR de que a tarefa representada pela instância atual ICLRTask já não está num estado operável.

Normalmente, uma tarefa termina no final da execução do código. Nessa altura, o anfitrião chama ICLRTask::ExitTask para destruir o associado ICLRTask. No entanto, as tarefas também podem ser recicladas através de uma chamada para ICLRTask::Reset, o que permite que a ICLRTask instância seja novamente utilizada. Esta abordagem impede a sobrecarga de criar e destruir instâncias repetidamente.

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: MSCorEE.h

Biblioteca: Incluído como um recurso no MSCorEE.dll

.NET Framework Versões: Disponível desde 2.0

Ver também