Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Informa ao CLR (Common Language Runtime) que o host concluiu uma tarefa e permite que o CLR reutilize a instância ICLRTask atual para representar outra tarefa.
Sintaxe
HRESULT Reset (
[in] BOOL fFull
);
Parâmetros
fFull [in] true, se o runtime deve redefinir todos os valores estáticos relacionados ao thread, além das informações de segurança e localidade relacionadas à instância atual ICLRTask ; caso contrário, false.
Se o valor for true, o runtime redefine os dados armazenados usando AllocateDataSlot ou AllocateNamedDataSlot.
Valor de retorno
| HRESULT | Descrição |
|---|---|
| S_OK |
Reset retornado com êxito. |
| HOST_E_CLRNOTAVAILABLE | O CLR não foi carregado em um processo ou o CLR está em um estado no qual não pode executar o código gerenciado ou processar a chamada. Sucesso |
| HOST_E_TIMEOUT | A chamada atingiu o tempo limite. |
| HOST_E_NOT_OWNER | O chamador não possui o bloqueio. |
| HOST_E_ABANDONED | Um evento foi cancelado enquanto um thread ou fibra bloqueado estava esperando por ele. |
| E_FAIL | Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR não é mais utilizável dentro do processo. Chamadas subsequentes para métodos de hospedagem retornam HOST_E_CLRNOTAVAILABLE. |
Observações
O CLR pode reciclar instâncias criadas ICLRTask anteriormente para evitar a sobrecarga de criar novas instâncias repetidamente sempre que precisar de uma nova tarefa. O host habilita esse recurso chamando ICLRTask::Reset em vez de ICLRTask::ExitTask quando ele concluiu uma tarefa. A lista a seguir resume o ciclo de vida normal de uma ICLRTask instância:
O runtime cria uma nova
ICLRTaskinstância.O runtime chama IHostTaskManager::GetCurrentTask para obter uma referência à tarefa de host atual.
O runtime chama IHostTask::SetCLRTask para associar a nova instância à tarefa de host.
A tarefa é executada e concluída.
O host destrói a tarefa chamando
ICLRTask::ExitTask.
Reset altera esse cenário de duas maneiras. Na etapa 5 acima, o host chama Reset para redefinir a tarefa para um estado limpo e, em seguida, separa a ICLRTask instância de sua instância IHostTask associada. Se desejado, o host também pode armazenar em cache a IHostTask instância para reutilização. Na etapa 1 acima, o runtime extrai um reciclado ICLRTask do cache em vez de criar uma nova instância.
Essa abordagem funciona bem quando o host também tem um pool de tarefas de trabalho reutilizáveis. Quando o host destrói uma de suas IHostTask instâncias, ele destrói o correspondente ICLRTask chamando ExitTask.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: MSCorEE.h
Biblioteca: Incluído como um recurso no MSCorEE.dll
Versões do .NET Framework: Disponível desde 2.0