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, false
annars .
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:
Körningen skapar en ny
ICLRTask
instans.Körningen anropar IHostTaskManager::GetCurrentTask för att hämta en referens till den aktuella värdaktiviteten.
Körningen anropar IHostTask::SetCLRTask för att associera den nya instansen med värdaktiviteten.
Uppgiften körs och slutförs.
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