Je comprends et j'apprécie l'utilité de la classe System.WeakReference dans le framework .NET, mais je suis curieux quant aux détails d'implémentation.Implémentation de WeakReference dans .NET
Comment WeakReference est-il implémenté dans .NET? MSDN discute de l'utilisation de WeakReference en détail, mais a peu de détails que j'ai vu sur comment cela fonctionne sous le capot.
Comment le CLR suit-il la référence et sait annuler le handle interne lorsque la cible est collectée, sans empêcher le GC? Cela nécessite-t-il une manipulation spéciale dans le CLR lui-même? Ma principale préoccupation serait de savoir si l'utilisation de WeakReferences (en particulier si vous en utilisez plusieurs) a des implications sur les performances qui diffèrent de celles de l'utilisation de références d'objet standard.
J'ai depuis fait beaucoup de recherche, et blogué sur mes résultats en détail: http://reedcopsey.com/?p=50 –