.net 1.1中静态变量在内存吃紧的时候会被垃圾回收器回收掉,不知道在.net2.0里是否也同样存在这个问题?

解决方案 »

  1.   

    这个问题我记得以前csdn里有人提过的啊,就是一个网站定义了一个静态变量,网站运行几天后报未将对象引用到实例的错误,查看原因就是静态变量变成null了,当静态变量存储引用类型的值的时候
      

  2.   

    不可能,这是.NET最基本的运行机制。
      

  3.   

    是啊就是.net的最基本机制啊,所谓的垃圾回收器机制,对于引用类型的静态变量确实会回收,当时我参与的一个项目是微软的领头,出现了bug,后来他解决了,告诉我的原因就是这个
      

  4.   

    我猜可能是假如在垃圾回收的时候静态变态所在的DLL组件没有在任何地方被引用的时候可能会被垃圾收集,不过也许只在内存特别吃紧的时候会有这个问题吧,垃圾回收很多细节的算法很复杂,我想.Net 2.0 应该又做了不少的优化。
      

  5.   

    静态变量在内存吃紧的时候会被垃圾回收器回收掉, .net如果这样设计的话很危险
      

  6.   

    cache在内存吃紧的时候会根据优先级来回收,
    静态变量应该是应用程序域销毁的时候才会被销毁,应该是进程回收之后没有赋初值;或者在某个地方被清除