手动dispose就可以了===========================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
优惠接单开发,信誉保证,Q66840199(请注明业务/技术咨询) 
===========================================================

解决方案 »

  1.   

    所有对象都占用系统资源,如内存、文件句柄和数据库连接。公共语言运行库 (CLR) 自动管理资源,通常不必考虑释放不需要的对象。但是,理解资源管理的工作原理能帮助您设计更有效的应用程序。垃圾回收
    CLR 使用名为垃圾回收的系统管理分配的资源。当应用程序中任何运行的代码都不再访问某对象时,系统垃圾回收器释放该对象的资源。垃圾回收算法是非确定性的,因此无法确定 CLR 释放对象资源的时间。下面各节介绍了 Visual Basic 中管理资源方式的一些更改。将对象指定为 Nothing
    Nothing 是一个关键字,Visual Basic 使用它指示对象变量不包含对对象的引用。早期版本的 Visual Basic 鼓励将未使用的对象指定为 Nothing,以取消对象变量与对象的关联并释放资源。现在仍可以将未使用的对象指定为 Nothing,但由于 Visual Basic 管理资源的方式,此进程并不保证立即释放这些对象。一般来说,仅应将共享成员或全局变量等长寿命的对象指定为 Nothing。Dispose
    有些对象支持名为 Dispose 的方法;其用途是更迅速地释放系统资源。支持 Dispose 方法的类必须实现 IDisposable 接口。当要释放对象资源时,需要显式调用 Dispose 方法。例如:ThisObject.Dispose()Finalize
    有些类支持另一种方法 Finalize,在释放对象时该方法自动运行,而且可用于执行其他清理任务。Finalize 方法类似于在早期版本的 Visual Basic 中使用的 Class_Terminate() 方法。当某个对象变得不可访问后,CLR 将最终调用该对象的 Finalize 方法。由于垃圾回收算法是非确定性的,因此可能会立即调用 Finalize 方法,也可能会在几小时后调用。 ===========================================================
    博客空间:http://blog.csdn.net/lovingkiss
    资源下载:http://download.csdn.net/user/lovingkiss
    Email:loving-kiss@163.com
    本人说明:<我的帖子我做主,结贴率保持100%>
    优惠接单开发,信誉保证,Q66840199(请注明业务/技术咨询) 
    ===========================================================
      

  2.   

    显式调用 Dispose 方法,基本上就可以直接释放了;否则就要等CLR来执行,就会比较慢;
      

  3.   

    Form.Dispose();
    理论是这样,但实际根本没用,不知道内部怎么处理的
      

  4.   

    是啊,DISPOSE()根本没用,我显式调用了。结果还是不断地占用内存。
      

  5.   

    dispose 用处的确不太大,可能目前的GC还不太成熟吧你手动调用  GC.Collect(); 试试
      

  6.   

    收藏
    dispose好像我也没有试用成功
    不知道为什么
      

  7.   

    显示调用dispose 只是销毁了托管的对象,你是不是还有非托管的对象?
      

  8.   

    using(form2 nform2=new form2)
    {
        代码!
    }