Même dans notre programme, il n'est pas possible d'exécuter la méthode de finalisation pour les 3 threads. "Cette méthode est intrinsèquement dangereuse Elle peut entraîner l'appel de finaliseurs sur des objets actifs tandis que d'autres threads manipulent simultanément ces objets, ce qui entraîne un comportement erratique ou un blocage. "
Pourquoi la méthode finalize doit être évitée en C ?
La méthode Finalize d'un objet ne doit pas appeler de méthode sur des objets autres que celui de sa classe de base. En effet, les autres objets appelés peuvent être collectés en même temps que l'objet appelant, comme dans le cas d'un arrêt du Common Language Runtime.
Devons-nous remplacer la méthode Finalize ?
La méthode finailze doit être remplacée pour qu'un objet inclue le code de nettoyage ou supprime les ressources système qui doivent être effectuées avant que l'objet ne soit récupéré.
Que se passe-t-il si une exception est lancée par la méthode Finalize ?
Si une exception non interceptée est lancée par la méthode finalize, l'exception est ignorée et la finalisation de cet objet se termine. … Toute exception levée par la méthode finalize entraîne l'arrêt de la finalisation de cet objet, mais est sinon ignorée.
Quel est le but de la méthode finalize ?
La méthode finalize de la classe Object est une méthode que le Garbage Collector appelle toujours juste avant la suppression/destruction de l'objet éligible au Garbage Collection, afin d'effectuer une activité de nettoyage.