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.
Informa o common language runtime (CLR) de que o host completou uma tarefa e permite ao CLR reutilizar a instância atual do ICLRTask para representar outra tarefa.
Sintaxe
HRESULT Reset (
[in] BOOL fFull
);
Parâmetros
fFull [em] true, se o tempo de execução reiniciar todos os valores estáticos relacionados com a thread, além da informação de segurança e localização da instância atual ICLRTask ; caso contrário, false.
Se o valor for true, o tempo de execução reinicia dados que foram armazenados usando AllocateDataSlot ou AllocateNamedDataSlot.
Valor de retorno
| HRESULT | Descrição |
|---|---|
| S_OK |
Reset regressou com sucesso. |
| HOST_E_CLRNOTAVAILABLE | O CLR não foi carregado num processo, ou o CLR está num estado em que não pode executar código gerido nem processar a chamada. Com sucesso |
| HOST_E_TIMEOUT | A chamada expirou. |
| HOST_E_NOT_OWNER | O chamador não é dono da fechadura. |
| HOST_E_ABANDONED | Um evento foi cancelado enquanto um fio ou fibra bloqueada estava à espera. |
| E_FAIL | Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR deixa de ser utilizado dentro do processo. As chamadas subsequentes para sistemas de alojamento regressam HOST_E_CLRNOTAVAILABLE. |
Observações
O CLR pode reciclar instâncias previamente criadas ICLRTask para evitar a sobrecarga de criar repetidamente novas instâncias sempre que precisa de uma nova tarefa. O anfitrião ativa esta funcionalidade chamando ICLRTask::Reset em vez de ICLRTask::ExitTask quando termina uma tarefa. A lista seguinte resume o ciclo de vida normal de uma ICLRTask instância:
O runtime cria uma nova
ICLRTaskinstância.O runtime chama o IHostTaskManager::GetCurrentTask para obter uma referência à tarefa do host atual.
O runtime chama o IHostTask::SetCLRTask para associar a nova instância à tarefa do host.
A tarefa é executada e concluída.
O anfitrião destrói a tarefa ao chamar
ICLRTask::ExitTask.
Reset altera este cenário de duas formas. No passo 5 acima, o host chama Reset para reiniciar a tarefa para um estado limpo e depois desacopla a ICLRTask instância da sua instância associada IHostTask . Se desejar, o anfitrião também pode armazenar a IHostTask instância em cache para reutilização. No passo 1 acima, o runtime retira um reciclado ICLRTask da cache em vez de criar uma nova instância.
Esta abordagem funciona bem quando o anfitrião também tem um conjunto de tarefas de trabalhadores reutilizáveis. Quando o hospedeiro destrói uma das suas IHostTask instâncias, destrói a correspondente ICLRTask ao chamar ExitTask.
Requisitos
Plataformas: Consulte Requisitos do sistema.
Cabeçalho: MSCorEE.h
Biblioteca: Incluído como recurso em MSCorEE.dll
Versões do .NET Framework: Disponível desde: 2.0