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