Dela via


ICLRTask::Reset, metod

Informerar CLR (Common Language Runtime) om att värden har slutfört en uppgift och gör det möjligt för CLR att återanvända den aktuella ICLRTask-instansen för att representera en annan uppgift.

Syntax

HRESULT Reset (  
    [in] BOOL fFull  
);  

Parametrar

fFull
[in] true, om körningen ska återställa alla trådrelaterade statiska värden utöver den säkerhets- och språkinformation som är relaterad till den aktuella ICLRTask instansen, falseannars .

Om värdet är trueåterställer körningen data som lagrats med eller AllocateDataSlotAllocateNamedDataSlot.

Returvärde

HRESULT Description
S_OK Reset returnerades.
HOST_E_CLRNOTAVAILABLE CLR har inte lästs in i en process, eller så är CLR i ett tillstånd där den inte kan köra hanterad kod eller bearbeta anropet. Framgångsrikt
HOST_E_TIMEOUT Tidsgränsen för samtalet överst.
HOST_E_NOT_OWNER Anroparen äger inte låset.
HOST_E_ABANDONED En händelse avbröts medan en blockerad tråd eller fiber väntade på den.
E_FAIL Ett okänt oåterkalleligt fel inträffade. När en metod returnerar E_FAIL kan CLR inte längre användas i processen. Efterföljande anrop till värdmetoder returnerar HOST_E_CLRNOTAVAILABLE.

Kommentarer

CLR kan återanvända tidigare skapade ICLRTask instanser för att undvika kostnaden för att upprepade gånger skapa nya instanser varje gång den behöver en ny uppgift. Värden aktiverar den här funktionen genom att anropa ICLRTask::Reset i stället för ICLRTask::ExitTask när den har slutfört en uppgift. I följande lista sammanfattas den normala livscykeln för en ICLRTask instans:

  1. Körningen skapar en ny ICLRTask instans.

  2. Körningen anropar IHostTaskManager::GetCurrentTask för att hämta en referens till den aktuella värdaktiviteten.

  3. Körningen anropar IHostTask::SetCLRTask för att associera den nya instansen med värdaktiviteten.

  4. Uppgiften körs och slutförs.

  5. Värden förstör uppgiften genom att anropa ICLRTask::ExitTask.

Reset ändrar det här scenariot på två sätt. I steg 5 ovan anropar Reset värden för att återställa uppgiften till ett rent tillstånd och frikopplar sedan instansen ICLRTask från dess associerade IHostTask-instans . Om så önskas kan värden även cachelagrat instansen IHostTask för återanvändning. I steg 1 ovan hämtar körningen en återanvändning ICLRTask från cachen i stället för att skapa en ny instans.

Den här metoden fungerar bra när värden också har en pool med återanvändbara arbetsuppgifter. När värden förstör en av sina IHostTask instanser förstör den motsvarande ICLRTask genom att anropa ExitTask.

Krav

Plattformar: Se Systemkrav.

Huvudet: MSCorEE.h

Bibliotek: Ingår som en resurs i MSCorEE.dll

.NET Framework versioner: Tillgänglig sedan 2.0

Se även