AppDomain.IsFinalizingForUnload Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, jestli se tato doména aplikace odloží a objekty, které obsahuje, jsou finalizovány modulem CLR (Common Language Runtime).
public:
bool IsFinalizingForUnload();
public bool IsFinalizingForUnload ();
member this.IsFinalizingForUnload : unit -> bool
Public Function IsFinalizingForUnload () As Boolean
Návraty
true
pokud se tato doména aplikace odloží a modul CLR (Common Language Runtime) spustil vyvolání finalizátorů; v opačném případě . false
Poznámky
Metoda finalizace objektu poskytuje příležitost provádět všechny nezbytné operace čištění před shromažďováním paměti objektu. Po dokončení je objekt přístupný, ale v neplatném stavu, a proto je nepoužitelný. Nakonec se uvolňování paměti dokončí a uvolní objekt.
Metoda finalizace objektu se volá v jedné z následujících situací: během uvolňování paměti, při vypnutí modulu CLR (Common Language Runtime) nebo při uvolnění domény aplikace, která obsahuje objekt. Metoda IsFinalizingForUnload se vrátí true
pouze v posledním případě; nevrací true
, pokud výsledkem dokončení je rutinní uvolňování paměti nebo vypnutí CLR.
Poznámka
Chcete-li zjistit, zda je finalizace způsobená vypnutím CLR, použijte Environment.HasShutdownStarted vlastnost. true
Vrátí se, pokud je finalizace způsobená uvolněním domény aplikace nebo vypnutím CLR.
Při provádění metody finalizace během uvolňování domény můžete chtít získat přístup k jinému objektu, na který odkazuje statické pole a má metodu finalizace. Nemůžete to ale spolehlivě provést, protože přístupový objekt již pravděpodobně byl dokončen.
Poznámka
Výjimkou tohoto pravidla je Console třída, která obsahuje statická pole, která odkazují na objekty streamu, ale je implementována speciálně, takže můžete vždy zapisovat do systémové konzoly, a to i během uvolnění domény nebo vypnutí systému.
Tuto metodu použijte v metodě finalizace objektu k určení, zda doména aplikace, která obsahuje objekt, je uvolnění. V takovém případě nemůžete spolehlivě získat přístup k žádnému objektu, který má metodu finalizace a odkazuje se na statické pole.