En l'état ce code est effectivement un problème, mais appeller Dispose dans le finaliseur est plutôt une bonne pratique, à condition de ne pas le faire n'importe comment.
Il suffit de se retirer de la file de finalisation dans le dispose. Si on l'appelle explicitement (via un appel direct ou via la fin du bloc using), la finalisation n'a pas lieu, mais si par quelque moyen que ce soit, le dispose n'est pas appelé explicitement, le nettoyage aura lieu au prix du finaliseur.
cf le MSDN :
http://msdn2.microsoft.com/en-us/lib...sfinalize.aspx
Partager