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 ce domaine d’application est déchargé et que les objets qu’il contient sont finalisés par le Common Language Runtime.
public:
bool IsFinalizingForUnload();
public bool IsFinalizingForUnload();
member this.IsFinalizingForUnload : unit -> bool
Public Function IsFinalizingForUnload () As Boolean
Retours
true si ce domaine d’application est déchargé et que le Common Language Runtime a commencé à appeler des 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 soit récupéré par la mémoire. Après la finalisation, l’objet est accessible, mais dans un état non valide et par conséquent 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 du garbage collection de routine ou de l’arrêt CLR.
Note
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 pendant le déchargement de domaine, vous pouvez accéder à un autre objet référencé par un champ statique et avoir 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é.
Note
Une exception à cette règle est la Console classe, qui contient des champs statiques qui référencent des objets de flux, mais est implémentée 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 à un objet qui a une méthode de finalisation et est référencé par un champ statique.