AppDomain.IsFinalizingForUnload Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Indique si le déchargement de ce domaine d'application est en cours et si les objets qu'il contient sont en cours de finalisation par le Common Language Runtime.
public:
bool IsFinalizingForUnload();
public bool IsFinalizingForUnload ();
member this.IsFinalizingForUnload : unit -> bool
Public Function IsFinalizingForUnload () As Boolean
Retours
true
si le déchargement du domaine d'application est en cours et que le Common Language Runtime a commencé à appeler les finaliseurs ; sinon, false
.
Remarques
La méthode de finalisation d’un objet vous offre la possibilité d’effectuer toutes les opérations de nettoyage nécessaires avant que l’objet ne soit collecté par la mémoire. Après la finalisation, l’objet est accessible, mais dans un état non valide et donc inutilisable. Finalement, le garbage collection se termine et récupère l’objet.
La méthode de finalisation d’un objet est appelée dans l’une des situations suivantes : lors du garbage collection, lorsque le common language runtime est arrêté ou lorsque le domaine d’application qui contient l’objet est déchargé. La IsFinalizingForUnload méthode retourne true
uniquement dans le dernier cas ; elle ne retourne true
pas si la finalisation résulte d’un garbage collection de routine ou d’un arrêt CLR.
Notes
Pour déterminer si la finalisation est due à l’arrêt CLR, utilisez la Environment.HasShutdownStarted propriété. Elle retourne true
si la finalisation est due à un domaine d’application déchargé ou à l’arrêt clR.
Lors de l’exécution dans votre méthode de finalisation lors du déchargement de domaine, vous pouvez accéder à un autre objet référencé par un champ statique et ayant une méthode de finalisation. Toutefois, vous ne pouvez pas le faire de manière fiable, car l’objet accessible a peut-être déjà été finalisé.
Notes
Une exception à cette règle est la Console classe, qui contient des champs statiques qui référencent des objets de flux, mais qui sont implémentés spécialement pour que vous puissiez toujours écrire dans la console système, même pendant le déchargement de domaine ou l’arrêt du système.
Utilisez cette méthode dans la méthode de finalisation d’un objet pour déterminer si le domaine d’application qui contient l’objet est déchargé. Si c’est le cas, vous ne pouvez pas accéder de manière fiable à n’importe quel objet qui a une méthode de finalisation et est référencé par un champ statique.