El código de prueba que usa WeakReference me falló al usar Mono 2.11.3 (SGen) y la versión estable 2.10.8. En un código simple como estecomportamiento WeakReference extraño en Mono
object obj = new object();
WeakReference wr = new WeakReference(obj);
Assert.IsTrue(wr.IsAlive);
obj = null;
GC.Collect();
Assert.IsFalse(wr.IsAlive);
la segunda afirmación fallará. Agregar GC.WaitForPendingFinalizers no ayuda. ¿Es esto un error en Mono o en mi cabeza? Gracias
Si se trata de un error en su cabeza puede depurar remotamente adjuntando PsychicDbg, pero terminar la sesión puede ser fatal. – Polyfun
Relevante: [GC.Collect \ (\) CLR <> Mono difference.] (Http://mono.1490590.n4nabble.com/GC-Collect-CLR-lt-gt-Mono-difference-td1536244.html) Perdí la comprensión sobre 2/3 del camino hacia abajo :) – AakashM