Método ICLRTask::Reset
Informa o runtime de idioma comum (CLR) de que o anfitrião 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
, if the runtime should reset all thread-related static values in addition to the security and locale information related to the current ICLRTask
instance; otherwise, false
.
Se o valor for true
, o runtime repõe os dados armazenados com AllocateDataSlot ou AllocateNamedDataSlot.
Devolver Valor
HRESULT | Description |
---|---|
S_OK | Reset devolvido com êxito. |
HOST_E_CLRNOTAVAILABLE | O CLR não foi carregado para um processo ou o CLR está num estado em que não pode executar código gerido ou processar a chamada. com êxito |
HOST_E_TIMEOUT | A chamada excedeu o limite de tempo. |
HOST_E_NOT_OWNER | O autor da chamada não é o proprietário do bloqueio. |
HOST_E_ABANDONED | Um evento foi cancelado enquanto um thread ou fibra bloqueado estava à espera do mesmo. |
E_FAIL | Ocorreu uma falha catastrófica desconhecida. Quando um método devolve E_FAIL, o CLR já não é utilizável no processo. As chamadas subsequentes para métodos de alojamento devolvem HOST_E_CLRNOTAVAILABLE. |
Observações
O CLR pode reciclar instâncias criadas ICLRTask
anteriormente para evitar a sobrecarga da criação repetida de novas instâncias sempre que precisar de uma nova tarefa. O anfitrião ativa esta funcionalidade ao chamar ICLRTask::Reset
em vez de ICLRTask::ExitTask quando tiver concluído uma tarefa. A lista seguinte resume o ciclo de vida normal de uma ICLRTask
instância:
O runtime cria uma nova
ICLRTask
instância.O runtime chama IHostTaskManager::GetCurrentTask para obter uma referência à tarefa de anfitrião atual.
O runtime chama IHostTask::SetCLRTask para associar a nova instância à tarefa de anfitrião.
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 anfitrião chama Reset
para repor a tarefa para um estado limpo e, em seguida, desassocia a ICLRTask
instância da instância do IHostTask associada. Se desejar, o anfitrião também pode colocar a IHostTask
instância em cache para reutilização. No passo 1 acima, o runtime solicita uma reciclagem 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 trabalho reutilizáveis. Quando o anfitrião destrói uma das instâncias IHostTask
, destrói o correspondente ICLRTask
ao chamar ExitTask
.
Requisitos
Plataformas: Veja Requisitos do Sistema.
Cabeçalho: MSCorEE.h
Biblioteca: Incluído como um recurso no MSCorEE.dll
.NET Framework Versões: Disponível desde 2.0