Delen via


Methode ICLRTask::Reset

Informeert de Common Language Runtime (CLR) dat de host een taak heeft voltooid en stelt de CLR in staat om het huidige ICLRTask-exemplaar opnieuw te gebruiken om een andere taak weer te geven.

Syntaxis

HRESULT Reset (  
    [in] BOOL fFull  
);  

Parameters

fFull
[in] true, als de runtime alle thread-gerelateerde statische waarden moet herstellen, naast de beveiligings- en landinstellingsinformatie met betrekking tot het huidige ICLRTask exemplaar; anders, false.

Als de waarde istrue, stelt de runtime gegevens die zijn opgeslagen met of AllocateNamedDataSlotAllocateDataSlot opnieuw in.

Retourwaarde

HRESULT Beschrijving
S_OK Reset is geretourneerd.
HOST_E_CLRNOTAVAILABLE De CLR is niet geladen in een proces of de CLR bevindt zich in een status waarin beheerde code niet kan worden uitgevoerd of de aanroep kan worden verwerkt. Succesvol
HOST_E_TIMEOUT Er is een time-out opgetreden voor het gesprek.
HOST_E_NOT_OWNER De beller is niet de eigenaar van het vergrendelingsslot.
HOST_E_ABANDONED Een gebeurtenis is geannuleerd terwijl er een geblokkeerde thread of vezel op wachtte.
E_FAIL Er is een onbekende catastrofale fout opgetreden. Wanneer een methode E_FAIL retourneert, is de CLR niet meer bruikbaar binnen het proces. Volgende aanroepen naar hostingmethoden retourneren HOST_E_CLRNOTAVAILABLE.

Opmerkingen

De CLR kan eerder gemaakte ICLRTask exemplaren recyclen om de overhead te voorkomen van het herhaaldelijk maken van nieuwe exemplaren wanneer er een nieuwe taak nodig is. De host schakelt deze functie in door aan te roepen ICLRTask::Reset in plaats van ICLRTask::ExitTask wanneer een taak is voltooid. De volgende lijst bevat een overzicht van de normale levenscyclus van een ICLRTask exemplaar:

  1. De runtime maakt een nieuw ICLRTask exemplaar.

  2. De runtime roept IHostTaskManager::GetCurrentTask aan om een verwijzing naar de huidige hosttaak op te halen.

  3. De runtime roept IHostTask::SetCLRTask aan om het nieuwe exemplaar te koppelen aan de hosttaak.

  4. De taak wordt uitgevoerd en voltooid.

  5. De host vernietigt de taak door aan te roepen ICLRTask::ExitTask.

Reset wijzigt dit scenario op twee manieren. In stap 5 hierboven roept Reset de host aan om de taak opnieuw in te stellen op een schone status en wordt het exemplaar vervolgens losgekoppeld van het ICLRTask bijbehorende IHostTask-exemplaar . Indien gewenst kan de host het exemplaar ook opslaan in de IHostTask cache voor hergebruik. In stap 1 hierboven haalt de runtime een gerecyclede ICLRTask op uit de cache in plaats van een nieuw exemplaar te maken.

Deze aanpak werkt goed wanneer de host ook een pool met herbruikbare werktaken heeft. Wanneer de host een van de IHostTask exemplaren vernietigt, worden de bijbehorende ICLRTask exemplaren vernietigd door aan te roepen ExitTask.

Vereisten

Platforms: Zie Systeemvereisten.

Header: MSCorEE.h

Bibliotheek: Opgenomen als een resource in MSCorEE.dll

.NET Framework versies: beschikbaar sinds 2.0

Zie ook