Método de ICLRTask::Reset
Informa o common language runtime (CLR) que o host concluiu uma tarefa e permite que o CLR reutilizar o atual ICLRTask instância para representar a outra tarefa.
HRESULT Reset (
[in] BOOL fFull
);
Parâmetros
fFull
[in] true, se o runtime deve redefinir todas as relacionadas de thread estáticos valores além as informações de localidade e de segurança relacionados à atual ICLRTask instância; Caso contrário, false.Se o valor for true, o runtime redefine os dados que foram armazenados usando AllocateDataSlot ou AllocateNamedDataSlot.
Valor de retorno
HRESULT |
Descrição |
---|---|
S_OK |
Resetretornado com êxito. |
HOST_E_CLRNOTAVAILABLE |
O CLR não foi carregado em um processo ou o CLR é em um estado em que ele não é possível executar código gerenciado ou processar a chamada. com êxito |
HOST_E_TIMEOUT |
A chamada foi esgotado. |
HOST_E_NOT_OWNER |
O chamador não possui o bloqueio. |
HOST_E_ABANDONED |
Um evento foi cancelado, enquanto um segmento bloqueado ou fibra estava esperando por ele. |
E_FAIL |
Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR não é usável dentro do processo. As chamadas subseqüentes para hospedar os métodos retornam HOST_E_CLRNOTAVAILABLE. |
Comentários
O CLR pode reciclar criado anteriormente ICLRTask instâncias para evitar a sobrecarga de repetidamente, criar novas instâncias de cada vez que ele precisa de uma nova tarefa. O host ativa esse recurso chamando ICLRTask::Reset em vez de ICLRTask::ExitTask quando ele estiver concluída, uma tarefa. A lista a seguir resume o ciclo de vida normal de um ICLRTask instância:
O runtime cria um novo ICLRTask instância.
As chamadas de tempo de execução IHostTaskManager::GetCurrentTask para obter uma referência para a tarefa atual do host.
As chamadas de tempo de execução IHostTask::SetCLRTask para associar a nova instância da tarefa do host.
A tarefa é executada e completa.
O host destrói a tarefa chamando ICLRTask::ExitTask.
ResetAltera a esse cenário de duas maneiras. Na etapa 5 acima, as chamadas de host Reset para redefinir a tarefa para um estado limpo e então dissocia o ICLRTask a instância do seu associado IHostTask instância. Se desejar, o host pode também armazenar em cache o IHostTask instância para reutilização. Na etapa 1 acima, o tempo de execução recebe um reciclado ICLRTask do cache em vez de criar uma nova instância.
Essa abordagem funciona bem quando o host também tem um conjunto de tarefas de trabalho reutilizáveis. Quando o host destrói um dos seus IHostTask instâncias, ele destrói o correspondente ICLRTask chamando ExitTask.
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: MSCorEE.h
Biblioteca: Incluído como um recurso em mscoree
.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0