Interface ICLRTask
Fornece métodos que permitem que o host faça solicitações do CLR (Common Language Runtime) ou forneça uma notificação ao CLR sobre a tarefa associada.
Métodos
Método | Descrição |
---|---|
Método Abort | Solicita que o CLR anule 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á terminando e tenta desligar a tarefa normalmente. |
Método GetMemStats | Obtém informações estatísticas sobre o uso de recursos de memória pela tarefa representada pela instância atual ICLRTask . |
Método LocksHeld | Obtém o número de bloqueios atualmente mantidos na tarefa. |
Método NeedsPriorityScheduling | Obtém um valor que indica se o host deve atribuir alta prioridade ao reagendamento da tarefa representada pela instância atual ICLRTask . |
Método Reset | Informa ao CLR que o host 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 anule 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 uso na depuração. |
Método SwitchIn | Notifica o CLR de que a tarefa representada pela instância atual ICLRTask está em um estado operável. |
Método SwitchOut | Notifica o CLR de que a tarefa representada pela instância atual ICLRTask não está mais em um estado operável. |
Método YieldTask | Solicita que o CLR disponibilize o tempo do processador para outras tarefas. O CLR não garante que a tarefa será colocada em um estado em que possa gerar tempo de processamento. |
Comentários
Uma ICLRTask
é a representação de uma tarefa para o CLR. A qualquer momento durante a execução do código, uma tarefa pode ser descrita como em execução ou aguardando para ser executada. O host chama o método ICLRTask::SwitchIn
para notificar o CLR de que a tarefa que a instância atual ICLRTask
representa agora está em um estado operável. Após uma chamada a ICLRTask::SwitchIn
, o host pode agendar a tarefa em qualquer thread do sistema operacional, exceto nos casos em que o runtime requer afinidade de thread, conforme especificado por chamadas para os métodos IHostTaskManager::BeginThreadAffinity e IHostTaskManager::EndThreadAffinity. Algum tempo depois, o sistema operacional pode decidir remover a tarefa do thread e colocá-la em um estado de não execução. Por exemplo, isso pode acontecer sempre que a tarefa bloquear primitivos de sincronização ou aguardar a conclusão das operações de E/S. O host chama SwitchOut para notificar o CLR de que a tarefa representada pela instância atual ICLRTask
não está mais em um estado operável.
Uma tarefa normalmente termina no final da execução do código. Nesse momento, o host chama ICLRTask::ExitTask
para destruir o ICLRTask
associado. No entanto, as tarefas também podem ser recicladas usando uma chamada para ICLRTask::Reset
, o que permite que a instância ICLRTask
seja usada novamente. Essa abordagem impede a sobrecarga de criar e destruir instâncias repetidamente.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: MSCorEE.h
Biblioteca: incluída como um recurso no MSCorEE.dll
Versões do .NET Framework: disponíveis desde 2.0