Mã thử nghiệm sử dụng WeakReference không thành công cho tôi khi sử dụng Mono 2.11.3 (SGen) cũng như phiên bản 2.10.8 ổn định. Trong một mã đơn giản như thế nàyHành vi WeakReference lạ trên Mono
object obj = new object();
WeakReference wr = new WeakReference(obj);
Assert.IsTrue(wr.IsAlive);
obj = null;
GC.Collect();
Assert.IsFalse(wr.IsAlive);
xác nhận thứ hai sẽ không thành công. Thêm GC.WaitForPendingFinalizers không giúp ích gì. Đây có phải là lỗi trong Mono hay trong đầu tôi không? Cảm ơn
Nếu nó là một lỗi trong đầu của bạn, bạn có thể gỡ lỗi từ xa bằng cách gắn PsychicDbg, nhưng chấm dứt phiên có thể gây tử vong. – Polyfun
Có liên quan: [GC.Collect \ (\) CLR <> Mono difference.] (Http://mono.1490590.n4.nabble.com/GC-Collect-CLR-lt-gt-Mono-difference-td1536244.html) Tôi mất hiểu khoảng 2/3 con đường xuống :) – AakashM