AppDomain.IsFinalizingForUnload Methode

Definition

Gibt an, ob diese Anwendungsdomäne entladen wird und ob die darin enthaltenen Objekte durch die Common Language Runtime finalisiert werden.Indicates whether this application domain is unloading, and the objects it contains are being finalized by the common language runtime.

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

Gibt zurück

true, wenn die Anwendungsdomäne entladen wird und die Common Language Runtime mit dem Aufrufen von Finalizers begonnen hat, andernfalls false.true if this application domain is unloading and the common language runtime has started invoking finalizers; otherwise, false.

Hinweise

Die Abschluss-Methode für ein Objekt bietet Ihnen die Möglichkeit, alle notwendigen Bereinigungs Vorgänge durchzuführen, bevor das Objekt in die Garbage Collection aufgenommen wird.The finalization method for an object provides you an opportunity to perform any necessary cleanup operations before the object is garbage collected. Nach dem Abschluss kann auf das Objekt zugegriffen werden, ist aber in einem ungültigen Zustand und daher nicht verwendbar.After finalization, the object is accessible but in an invalid state and therefore unusable. Schließlich wird Garbage Collection abgeschlossen und das-Objekt freigegeben.Eventually, garbage collection completes and reclaims the object.

Die Abschluss-Methode eines Objekts wird in einer der folgenden Situationen aufgerufen: während Garbage Collection, wenn die Common Language Runtime heruntergefahren wird oder wenn die Anwendungsdomäne, die das Objekt enthält, entladen wird.An object's finalization method is called in one of the following situations: during garbage collection, when the common language runtime is shutting down, or when the application domain that contains the object is unloaded. Die IsFinalizingForUnload-Methode gibt true nur im letzten Fall zurück. Sie gibt keine true zurück, wenn die finalisierungsergebnisse aus der Routine Garbage Collection oder vom CLR Herunterfahren.The IsFinalizingForUnload method returns true only in the last case; it does not return true if finalization results from routine garbage collection or from CLR shutdown.

Hinweis

Verwenden Sie die Environment.HasShutdownStarted-Eigenschaft, um zu bestimmen, ob die Beendigung durch das Herunterfahren von CLR verursacht wurde.To determine whether finalization is due to CLR shutdown, use the Environment.HasShutdownStarted property. Es wird true zurückgegeben, wenn die Finalisierung darauf zurückzuführen ist, dass eine Anwendungsdomäne entladen oder die CLR heruntergefahren wird.It returns true if finalization is due to an application domain being unloaded or to the CLR shutting down.

Beim Ausführen von in der Abschluss-Methode beim Entladen der Domäne können Sie auf ein anderes Objekt zugreifen, auf das von einem statischen Feld verwiesen wird und das über eine Abschluss-Methode verfügt.While executing in your finalization method during domain unloading, you might want to access another object that is referenced by a static field and has a finalization method. Sie können dies jedoch nicht zuverlässig tun, da das Objekt, auf das zugegriffen wurde, möglicherweise bereits fertiggestellt wurde.However, you cannot reliably do so because the accessed object might already have been finalized.

Hinweis

Eine Ausnahme von dieser Regel ist die Console-Klasse, die statische Felder enthält, die auf Streamobjekte verweisen. Sie wird jedoch speziell implementiert, sodass Sie jederzeit in die Systemkonsole schreiben können, auch während das Entladen der Domäne oder das Herunterfahren des Systems erfolgt.An exception to this rule is the Console class, which contains static fields that reference stream objects, but is implemented specially so you can always write to the system console, even during domain unloading or system shutdown.

Verwenden Sie diese Methode in der Abschluss-Methode eines Objekts, um zu bestimmen, ob die Anwendungsdomäne, die das Objekt enthält, entladen wird.Use this method in an object's finalization method to determine whether the application domain that contains the object is unloading. Wenn dies der Fall ist, können Sie nicht zuverlässig auf ein Objekt zugreifen, das über eine Abschluss-Methode verfügt und auf die durch ein statisches Feld verwiesen wird.If that is the case, you cannot reliably access any object that has a finalization method and is referenced by a static field.

Gilt für:

Siehe auch