Jon*_*eet 19
静态变量引用的对象只会在相关垃圾收集时进行AppDomain
垃圾回收.在客户端应用程序中,通常只有一个AppDomain
在流程期间存在.(例外情况是当应用程序使用插件架构时 - 可能会在不同的AppDomain
s中加载不同的插件,AppDomain
以后可能会卸载它们.)
在ASP.NET中," AppDomain
回收"会定期发生(由于各种原因) - 当发生这种情况时,其中的静态变量AppDomain
将不再充当GC根,因此不会阻止对象被垃圾回收.
如果你担心一个对象被垃圾收集,而你仍然通过一个静态变量引用它,你可以放松一下.虽然您可以访问该对象,但它不会被垃圾回收.
成员不被收集......对象是.
所以,如果你设置参考.键入static member为null,将收集之前指向的任何对象.如果没有,它会一直存在,直到AppDomain关闭(每个AppDomain都有自己的静态东西)