Compartilhar via


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

Confira também