Partilhar via


Método ICLRTask::reiniciar

Informa o Common linguagem tempo de execução (CLR) que o host foi concluída uma tarefa e permite que o CLR reutilizar o corrente ICLRTask instância para representar outra tarefa.

HRESULT Reset (
    [in] BOOL fFull
);

Parâmetros

  • fFull
    [in] true, se o tempo de execução deve reiniciar todas as relacionadas ao thread estático valores além as informações sobre segurança e local relacionados à corrente ICLRTask instância; caso contrário, false.

    Se o valor é true, o tempo de execução redefine os dados que foram 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 em que ele não possa executar código gerenciado ou processar a telefonar. com êxito

HOST_E_TIMEOUT

A telefonar expirou.

HOST_E_NOT_OWNER

O chamador não é proprietário do bloquear.

HOST_E_ABANDONED

Um evento foi cancelado enquanto um segmento bloqueado ou fibra estava aguardando nele.

E_FAIL

Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR não é mais útil dentro do processo. As chamadas subseqüentes à hospedagem métodos retornam HOST_E_CLRNOTAVAILABLE.

Comentários

O CLR pode reciclar criado anteriormente ICLRTask instâncias para evitar a sobrecarga de criação de novas instâncias repetidas vezes toda vez que ele precisa de uma nova tarefa. O host ativa esse recurso chamando ICLRTask::Reset em vez de ICLRTask::ExitTask quando uma tarefa foi concluída. A lista a seguir resume o ciclo de vida normal de umICLRTask instância:

  1. O tempo de execução cria um novo ICLRTask instância.

  2. O tempo de execução chama IHostTaskManager::GetCurrentTask para obter uma referência à tarefa corrente do host.

  3. O tempo de execução chama IHostTask::SetCLRTask para associar a nova instância da tarefa do host.

  4. A tarefa é executada e completa.

  5. O host destrói a tarefa chamando ICLRTask::ExitTask.

Reset Altera a esse cenário de duas maneiras. Na etapa 5 acima, o host chama Reset Para reiniciar a tarefa para um estado limpo e então dissocia o ICLRTask 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 ocorrências, ele destrói o correspondente ICLRTask chamando ExitTask.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: MSCorEE.idl

Biblioteca: Incluído sistema autônomo um recurso em MSCorEE.dll

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface ICLRTask

Interface ICLRTaskManager

Interface IHostTask

Interface IHostTaskManager