AppDomain.IsFinalizingForUnload Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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.