Sdílet prostřednictvím


ICLRTask::Reset – metoda

Informuje modul CLR (Common Language Runtime), že hostitel dokončil úlohu, a umožní modulu 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 kromě informací o zabezpečení a národním prostředí souvisejících s aktuální ICLRTask instancí resetovat všechny statické hodnoty související s vlákny false. V opačném případě .

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

Návratová hodnota

HRESULT Description
S_OK Reset úspěšně vráceno.
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 Časový limit hovoru vypršel.
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ému katastrofickému selhání. Když metoda vrátí E_FAIL, CLR už není v rámci procesu použitelný. Následná volání metod hostování vrátí HOST_E_CLRNOTAVAILABLE.

Poznámky

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

  1. Modul runtime vytvoří novou ICLRTask instanci.

  2. Modul runtime volá IHostTaskManager::GetCurrentTask , aby získal odkaz na aktuální úlohu hostitele.

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

  4. Úloha se provede a dokončí.

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

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

Tento přístup funguje dobře, když má hostitel také fond opakovaně použitelných pracovních úkolů. Když hostitel zničí jednu ze svých IHostTask instancí, zničí odpovídající ICLRTask tím, že zavolá ExitTask.

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: MSCorEE.h

Knihovny: Zahrnuto jako prostředek v MSCorEE.dll

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

Viz také