ICLRTask::Visszaállítási módszer

Tájékoztatja a közös nyelvi futtatókörnyezetet (CLR), hogy a gazdagép végrehajtott egy feladatot, és lehetővé teszi, hogy a CLR újra felhasználja az aktuális ICLRTask-példányt egy másik feladat megjelenítéséhez.

Szemantika

HRESULT Reset (
    [in] BOOL fFull
);

Paraméterek

fFull [in] true, ha a futtatókörnyezetnek alaphelyzetbe kell állítania az összes szálhoz kapcsolódó statikus értéket az aktuális ICLRTask példányhoz kapcsolódó biztonsági és területi információk mellett; ellenkező esetben false.

Ha az érték az true, a futtatókörnyezet alaphelyzetbe állítja a használt AllocateDataSlot vagy AllocateNamedDataSlota .

Visszaadott érték

HRESULT Leírás
S_OK Reset sikeresen visszaadott.
HOST_E_CLRNOTAVAILABLE A CLR nincs betöltve egy folyamatba, vagy a CLR olyan állapotban van, amelyben nem futtathat felügyelt kódot, és nem tudja feldolgozni a hívást. Sikeresen
HOST_E_TIMEOUT A hívás túllépte az időkorlátot.
HOST_E_NOT_OWNER A hívó nem rendelkezik a zárral.
HOST_E_ABANDONED Egy esemény megszakadt, miközben egy blokkolt szál vagy szál várt rá.
E_FAIL Ismeretlen katasztrofális hiba történt. Amikor egy metódus E_FAIL ad vissza, a CLR már nem használható a folyamaton belül. A metódusok későbbi hívásai HOST_E_CLRNOTAVAILABLE térnek vissza.

Megjegyzések

A CLR újra felhasználhatja a korábban létrehozott ICLRTask példányokat, hogy elkerülje az új példányok ismételt létrehozásának többletterhelését minden alkalommal, amikor új feladatra van szüksége. A gazdagép úgy teszi lehetővé ezt a funkciót, hogy az ICLRTask::ExitTask helyett meghív ICLRTask::Reset egy feladatot. Az alábbi lista egy példány normál életciklusát ICLRTask foglalja össze:

  1. A futtatókörnyezet létrehoz egy új ICLRTask példányt.

  2. A futtatókörnyezet meghívja az IHostTaskManager::GetCurrentTask parancsot az aktuális gazdagépfeladatra mutató hivatkozás lekéréséhez.

  3. A futtatókörnyezet meghívja az IHostTask::SetCLRTask parancsot, hogy az új példányt társítsa a gazdagépfeladathoz.

  4. A feladat végrehajtja és befejezi.

  5. A gazdagép a hívással ICLRTask::ExitTaskmegsemmisíti a feladatot.

Reset ezt a forgatókönyvet kétféleképpen módosítja. A fenti 5. lépésben a gazdagép kéri Reset a feladat tiszta állapotba állítását, majd leválasztja a példányt a ICLRTask társított IHostTask-példányról . Ha szükséges, a gazdagép a példányt is gyorsítótárazza IHostTask újra. A fenti 1. lépésben a futtatókörnyezet egy új példány létrehozása helyett egy újrahasznosított ICLRTask példányt kér le a gyorsítótárból.

Ez a megközelítés akkor működik jól, ha a gazdagép újrahasználható feldolgozói feladatok készletével is rendelkezik. Amikor a gazdagép megsemmisíti az egyik IHostTask példányát, a megfelelőt ICLRTask a hívással ExitTaskmegsemmisíti.

Követelmények

Platformok: Lásd a rendszerkövetelményeket.

Fejléc: MSCorEE.h

Könyvtár: Erőforrásként szerepel a MSCorEE.dll

.NET-keretrendszerverziók: 2.0 óta elérhető

Lásd még