本帖最后由 jshzp 于 2011-07-29 12:37:02 编辑

解决方案 »

  1.   

    c#中,只要没有引用指向这个对象,它就会在合适的时候被销毁。例如,A=null,就可以了
      

  2.   

    使用完了以后,写上A=null;然后坐等GC自动回收。是这样吗?
      

  3.   

    托管对象不需要销毁,=null纯属多此一举,析构函数也纯属多此一举...非托管对象必须显式释放,即使如此析构函数也不是必须的,实现IDisposable才是良好习惯...
      

  4.   


    写null会好一点,至少是告诉GC,这个可以回收了。
      

  5.   

    我的程序中,为了保证A只有一个实例,我采用了下面的办法:if(A!=null)A=null;
    A=new Class1();如果GC能及时回收,则A仅有一个实例,但是听说GC回收时间不太确定。那么,执行完上面两条语句后,能认为A只有一个实例吗?
      

  6.   

    似乎,销毁了,也要等到下一次回收,才真正回收。.NET有回收机制,根本不用考虑这些问题。只有非托管的才需要,.NET非托管的,少,经常用到的非托管的,像SqlConnection,非托管。要手动关闭
      

  7.   

    “.NET有回收机制,根本不用考虑这些问题。”坐等等GC回收,不行啊!实际使用中,用户会点击出很多个窗体!至少从界面上说,回收机制不够及时!