AppDomain.IsFinalizingForUnload Metoda

Definicja

Wskazuje, czy ta domena aplikacji jest zwalniana, a zawarte w niej obiekty są finalizowane przez środowisko uruchomieniowe języka wspólnego.

public:
 bool IsFinalizingForUnload();
public bool IsFinalizingForUnload ();
member this.IsFinalizingForUnload : unit -> bool
Public Function IsFinalizingForUnload () As Boolean

Zwraca

Boolean

true jeśli ta domena aplikacji zwalnia, a środowisko uruchomieniowe języka wspólnego zaczęło wywoływanie finalizatorów; w przeciwnym razie , false.

Uwagi

Metoda finalizacji obiektu zapewnia możliwość wykonania wszelkich niezbędnych operacji oczyszczania, zanim obiekt zostanie odśmiecany. Po zakończeniu obiekt jest dostępny, ale w nieprawidłowym stanie i dlatego jest bezużyteczny. W końcu odzyskiwanie pamięci zostanie zakończone i odzyskane.

Metoda finalizacji obiektu jest wywoływana w jednej z następujących sytuacji: podczas odzyskiwania pamięci, gdy środowisko uruchomieniowe języka wspólnego jest zamykane lub gdy domena aplikacji, która zawiera obiekt, jest zwalniana. Metoda IsFinalizingForUnload zwraca true tylko w ostatnim przypadku. Nie jest zwracana, jeśli finalizacja będzie wynikać true z rutynowego odzyskiwania pamięci lub zamknięcia środowiska CLR.

Uwaga

Aby określić, czy finalizacja jest spowodowana zamknięciem środowiska CLR, użyj Environment.HasShutdownStarted właściwości . Zwraca true wartość , jeśli finalizacja jest spowodowana zwolnieniem domeny aplikacji lub zamknięciem środowiska CLR.

Podczas wykonywania w metodzie finalizacji podczas zwalniania domeny można uzyskać dostęp do innego obiektu, do którego odwołuje się pole statyczne i ma metodę finalizacji. Nie można tego jednak niezawodnie zrobić, ponieważ dostęp do obiektu mógł już zostać sfinalizowany.

Uwaga

Wyjątkiem od tej reguły jest Console klasa, która zawiera pola statyczne odwołujące się do obiektów strumienia, ale jest zaimplementowana specjalnie, dzięki czemu zawsze można zapisywać w konsoli systemowej, nawet podczas zwalniania domeny lub zamykania systemu.

Użyj tej metody w metodzie finalizacji obiektu, aby określić, czy domena aplikacji zawierająca obiekt jest zwalniany. W takim przypadku nie można niezawodnie uzyskać dostępu do żadnego obiektu, który ma metodę finalizacji i jest przywołyny przez pole statyczne.

Dotyczy

Zobacz też