ICLRTask::Reset – metoda

Informuje modul CLR (Common Language Runtime), že hostitel dokončil úlohu, a umožňuje clr znovu použít aktuální instanci ICLRTask k reprezentaci jiné úlohy.

Syntaxe

HRESULT Reset (
    [in] BOOL fFull
);

Parametry

fFull[in] true, pokud by modul runtime měl obnovit všechny statické hodnoty související s vlákny kromě informací o zabezpečení a národním prostředí souvisejících s aktuální ICLRTask instancí; jinak . false

Pokud je truehodnota , modul runtime resetuje data uložená pomocí AllocateDataSlot nebo AllocateNamedDataSlot.

Návratová hodnota

HRESULT Description
S_OK Reset byla úspěšně vrácena.
HOST_E_CLRNOTAVAILABLE ClR nebyl načten do procesu nebo clr je ve stavu, ve kterém nemůže spustit spravovaný kód nebo zpracovat volání. Úspěšně
HOST_E_TIMEOUT Vypršel časový limit hovoru.
HOST_E_NOT_OWNER Volající zámek nevlastní.
HOST_E_ABANDONED Událost byla zrušena, když na ni čekalo blokované vlákno nebo vlákno.
E_FAIL Došlo k neznámé katastrofické chybě. Když metoda vrátí E_FAIL, CLR již není možné použít v rámci procesu. Následná volání metod hostování vrací HOST_E_CLRNOTAVAILABLE.

Poznámky

CLR může dříve vytvořené ICLRTask instance recyklovat, aby se zabránilo režii opakovaného vytváření nových instancí pokaždé, když potřebuje novou úlohu. Hostitel tuto funkci povolí voláním ICLRTask::Reset namísto ICLRTask::ExitTask po dokončení úlohy. Následující seznam shrnuje normální životní cyklus ICLRTask instance:

  1. Modul runtime vytvoří novou ICLRTask instanci.

  2. Modul runtime volá IHostTaskManager::GetCurrentTask pro získání odkazu na aktuální úlohu hostitele.

  3. Modul runtime volá IHostTask::SetCLRTask pro přidružení nové instance k úloze hostitele.

  4. Úloha se spustí a dokončí.

  5. Hostitel zničí úkol voláním ICLRTask::ExitTask.

Reset tento scénář mění dvěma způsoby. V kroku 5 výše volá hostitel Reset resetování úlohy do čistého stavu a potom oddělí ICLRTask instanci od přidružené instance IHostTask . V případě potřeby může hostitel také uložit instanci do mezipaměti IHostTask pro opakované použití. V kroku 1 výše modul runtime stáhne recyklaci ICLRTask z mezipaměti místo vytvoření nové instance.

Tento přístup funguje dobře, pokud má hostitel také fond opakovaně použitelných pracovních úkolů. Když hostitel zničí jednu z jeho IHostTask instancí, zničí odpovídající ICLRTask voláním ExitTask.

Požadavky

Platformy: Viz požadavky na systém.

Záhlaví: MSCorEE.h

Knihovna: Zahrnutý jako prostředek v MSCorEE.dll

Verze rozhraní .NET Framework: K dispozici od verze 2.0

Viz také