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
);

Parameterwaarden

fFull[in] true, als de runtime alle threadgerelateerde statische waarden opnieuw moet instellen, naast de beveiligings- en landinstellingen die betrekking hebben op het huidige ICLRTask exemplaar; anders. false

Als de waarde is true, stelt de runtime gegevens opnieuw in die zijn opgeslagen met of AllocateDataSlotAllocateNamedDataSlot.

Retourwaarde

HRESULT Beschrijving
S_OK Reset is geretourneerd.
HOST_E_CLRNOTAVAILABLE De CLR is niet geladen in een proces of de CLR heeft 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 eigenaar van het slot.
HOST_E_ABANDONED Er is een gebeurtenis geannuleerd terwijl een geblokkeerde thread of glasvezel erop wachtte.
E_FAIL Er is een onbekende onherstelbare 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 van het herhaaldelijk maken van nieuwe exemplaren te voorkomen telkens wanneer er een nieuwe taak nodig is. De host schakelt deze functie in door in plaats van ICLRTask::ExitTask aan te roepen ICLRTask::Reset wanneer deze een taak heeft 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 koppelt het exemplaar vervolgens los van het ICLRTask bijbehorende IHostTask-exemplaar . Indien gewenst kan de host het IHostTask exemplaar ook opslaan voor hergebruik. In stap 1 hierboven haalt de runtime een gerecycled uit ICLRTask de cache op in plaats van een nieuw exemplaar te maken.

Deze benadering werkt goed wanneer de host ook een groep herbruikbare werktaken heeft. Wanneer de host een van de IHostTask exemplaren vernietigt, wordt het bijbehorende door ICLRTask aanroepen ExitTaskvernietigd.

Requirements

Platformen: Zie Systeemvereisten.

Rubriek: MSCorEE.h

Bibliotheek: Opgenomen als een resource in MSCorEE.dll

.NET Framework-versies: Beschikbaar sinds 2.0

Zie ook