這個東西是什麼呢?
它似乎是一種創建GC可以儘早收集的對象的方法,如果它早期收集,我應該重新創建它。這聽起來像我緩存,但其他StackOverflow questions say that this is a lousy cache strategy because the GC in practice will GC your object very eager and fast,(another Q that says weakreference make poor caches)有點像使用ASP.NET的緩存並將其設置爲非常低的緩存逐出時間限制。
背景:我最近正在閱讀TraceSource的CLR代碼。在構造函數中,發生的第一件事是將WeakReference(this)添加到靜態字典中。奇怪的是,只有在TraceSource重新讀取弱引用字典中的每個TraceSource的配置文件時,纔會在Refresh方法中使用它,但前提是它尚未被GC化。而另一個StackOverflow question indicates this causes memory leaks。
所以我一直在閱讀關於WeakReferences並越來越困惑。
http://weblogs.java.net/blog/2006/05/04/understanding-weak-references – DarthVader
@DarthVader我不確定JVM行爲是否指示CLR行爲。 – MatthewMartin