使用 Mono 2.11.3 (SGen) 以及稳定的 2.10.8 版本测试使用 WeakReference 的代码对我来说失败了。在这样的简单代码中
object obj = new object();
WeakReference wr = new WeakReference(obj);
Assert.IsTrue(wr.IsAlive);
obj = null;
GC.Collect();
Assert.IsFalse(wr.IsAlive);
第二个断言将失败。添加 GC.WaitForPendingFinalizers 没有帮助。这是 Mono 中的错误还是我脑海中的错误?谢谢