Object.Finalize, méthode (System)

Bibliothèque de classes .NET Framework 
Object.Finalize, méthode 

Autorise Object à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant que Object soit récupéré par l'opération garbage collection.

Espace de noms : System
Assembly : mscorlib (dans mscorlib.dll)

SyntaxeSyntaxe


Visual Basic (Déclaration)
Protected Overridable Sub Finalize


Visual Basic (Utilisation)
Me.Finalize


C#
~Object()


C++
!Object ()


J#
protected void finalize ()


JScript
protected function Finalize ()
NotesNotes

Finalize est protégé et n'est donc accessible qu'à l'aide de cette classe ou d'une classe dérivée.

Cette méthode est automatiquement appelée lorsqu'un objet devient inaccessible, à moins qu'il ait été dispensé de finalisation par un appel à SuppressFinalize. Pendant l'arrêt d'un domaine d'application, Finalize est automatiquement appelé sur des objets qui ne sont pas dispensés de finalisation, même sur ceux qui sont toujours accessibles. Finalize n'est automatiquement appelé qu'une seule fois sur une instance donnée, à moins que l'objet soit réinscrit à l'aide d'un mécanisme tel que ReRegisterForFinalize et que GC.SuppressFinalize n'ait pas été appelé par la suite.

Toutes les implémentations de Finalize dans un type dérivé doivent appeler l'implémentation de Finalize de leur type de base. Il s'agit du seul cas où le code d'application est autorisé à appeler Finalize.

Les opérations Finalize possèdent les restrictions suivantes :

  • L'heure exacte à laquelle le finaliseur s'exécute pendant l'opération garbage collection n'est pas définie. Il n'est pas garanti que les ressources seront libérées à une heure déterminée, sauf si vous appelez une méthode Close ou Dispose.

  • Il n'est pas garanti que les finaliseurs de deux objets s'exécuteront dans un ordre déterminé, même si un objet fait référence à l'autre. Cela signifie que si l'objet A fait référence à l'objet B et si les deux objets possèdent des finaliseurs, l'objet B peut avoir terminé la finalisation lorsque le finaliseur de l'objet A démarre.

  • Le thread sur lequel s'exécute le finaliseur n'est pas spécifié.

Il se peut que la méthode Finalize ne s'exécute pas complètement ou pas du tout dans les circonstances exceptionnelles suivantes :

  • Un autre finaliseur se bloque indéfiniment (entre dans une boucle sans fin, tente en vain d'obtenir un verrouillage, etc.). Comme le runtime tente d'exécuter des finaliseurs jusqu'à la fin, il se peut que les autres finaliseurs ne soient pas appelés si l'un d'eux se bloque indéfiniment.

  • Le processus se termine sans donner au runtime une chance de remettre tout en ordre. Dans ce cas, la première notification de l'achèvement du processus du runtime est une notification DLL_PROCESS_DETACH.

Le runtime continue à finaliser (Finalize) des objets pendant l'arrêt aussi longtemps que le nombre d'objets finalisables diminue.

Si Finalize ou une substitution de Finalize lève une exception, et que le runtime n'est pas hébergé par une application qui substitue la stratégie par défaut, le runtime termine le processus et aucun bloc try-finally actif ni aucun finaliseur n'est exécuté. Ce comportement garantit l'intégrité du processus si le finaliseur ne peut pas libérer ou détruire des ressources.

Remarques à l'attention des implémenteurs Object.Finalize n'a aucun effet par défaut. Il ne doit être substitué par une classe dérivée qu'en cas de nécessité, car toute récupération pendant une opération garbage collection dure bien plus longtemps si une opération Finalize doit être exécutée. Si Object contient des références à des ressources, Finalize doit être substitué par une classe dérivée afin de libérer ces ressources avant que Object soit ignoré pendant l'opération garbage collection. Un type doit implémenter Finalize s'il utilise des ressources non managées, telles que des handles de fichiers ou des connexions de bases de données, qui doivent être libérées en cas de récupération de l'objet managé qui les emploie. Pour un moyen complémentaire et plus contrôlable de détruire les ressources, consultez l'interface IDisposable. Finalize peut effectuer n'importe quelle action, y compris ressusciter (rendre à nouveau accessible) un objet qui a été nettoyé pendant une opération garbage collection. Cependant, l'objet ne peut être ressuscité qu'une seule fois. Finalize ne peut pas être appelé sur des objets ressuscités pendant une opération garbage collection.

Les destructeurs constituent le mécanisme C# permettant d'effectuer des opérations de nettoyage. Ils fournissent une sécurité appropriée, par exemple en appelant automatiquement le destructeur du type de base. Dans le code C#, Object.Finalize ne peut pas être appelé ou substitué.

Plates-formesPlates-formes

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

Informations de versionInformations de version

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0
Voir aussiVoir aussi

Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/system.object.finalize.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

8 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-4800
Document créé le 30/10/06 01:22, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-system.object.finalize.html Document affiché 1 fois ce mois de Juin.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,39 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Au cinéma vous écrivez pour séduire, pour que les gens sortent de chez eux, alors que sur le petit écran, vous écrivez pour ne pas les heurter et qu'ils restent devant leur poste.

Gérard Bitton
 
l'infobrol
Nous sommes le Vendredi 01 Juin 2012, 04:44, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)