Freigeben über


AppDomain.IsFinalizingForUnload Methode

Definition

Gibt an, ob diese Anwendungsdomäne entladen wird und die darin enthaltenen Objekte von der Common Language Runtime abgeschlossen werden.

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

Gibt zurück

truewenn diese Anwendungsdomäne entladen wird und die Common Language Runtime mit dem Aufrufen von Finalizern begonnen hat; andernfalls . false

Hinweise

Die Finalisierungsmethode für ein Objekt bietet Ihnen die Möglichkeit, alle erforderlichen Bereinigungsvorgänge auszuführen, bevor das Objekt garbage collection wird. Nach Abschluss der Fertigstellung ist das Objekt barrierefrei, aber in einem ungültigen Zustand und daher nicht verwendbar. Schließlich schließt die Garbage Collection ab und gibt das Objekt zurück.

Die Abschlussmethode eines Objekts wird in einem der folgenden Situationen aufgerufen: während der Garbage Collection, beim Herunterfahren der Common Language Runtime oder beim Entladen der Anwendungsdomäne, die das Objekt enthält. Die IsFinalizingForUnload Methode gibt nur im letzten Fall zurück true . Sie wird nicht zurückgegeben true , wenn die Endisierung aus der Routine-Garbage Collection oder beim Herunterfahren von CLR resultiert.

Hinweis

Verwenden Sie die Environment.HasShutdownStarted Eigenschaft, um zu ermitteln, ob die Fertigstellung aufgrund des HERUNTERFAHRENS durch CLR erfolgt. Es wird zurückgegeben true , wenn die Finalisierung darauf zurückzuführen ist, dass eine Anwendungsdomäne entladen wird oder die CLR heruntergefahren wird.

Während der Ausführung in Der Endisierungsmethode während des Entladens der Domäne möchten Sie möglicherweise auf ein anderes Objekt zugreifen, auf das von einem statischen Feld verwiesen wird und über eine Abschlussmethode verfügt. Dies ist jedoch nicht zuverlässig möglich, da das aufgerufene Objekt möglicherweise bereits abgeschlossen wurde.

Hinweis

Eine Ausnahme dieser Regel ist die Console Klasse, die statische Felder enthält, die auf Datenstromobjekte verweisen, aber speziell implementiert werden, damit Sie immer in die Systemkonsole schreiben können, auch während des Entladens der Domäne oder beim Herunterfahren des Systems.

Verwenden Sie diese Methode in der Finalisierungsmethode eines Objekts, um zu bestimmen, ob die Anwendungsdomäne, die das Objekt enthält, entladen wird. Wenn dies der Fall ist, können Sie nicht zuverlässig auf jedes Objekt zugreifen, das über eine Finalisierungsmethode verfügt und von einem statischen Feld referenziert wird.

Gilt für:

Weitere Informationen