在MDI窗体中每添加一个子窗体就增加内存,关闭子窗体,内存并不减少,我想关闭子窗体,立刻释放该窗体占用的内存,高手教教,谢谢
 
(我让子窗体=null,再调用GC.Collect()也是不管用)
  我看内存是在资源管理器里看。

解决方案 »

  1.   

    不要用form.close()方法。
    用form.dispose();"我让子窗体=null,再调用GC.Collect()也是不管用"
    如果是非托管资源,GC.Collect()是没有用的,GC只能回收托管资源。
      

  2.   


    试过了form.dispose()方法,不管用,form窗体时托管资源还是非托管资源呢
      

  3.   

    .net是托管的。无论你如何GC,怎么Dispose,该回收的东西,都是收CLR进行的。.net里提供的GC并不能如C++那样能起到实质的作用。
    建议:
    所有对象在使用之后,及时Dispose。内存在使用达到一定程度后,CLR会自动帮你回收。
      

  4.   

    另外,关注一下在窗体内是否使用到了其他的非托管资源,如调用COM、非托管动态库等如果有,请在Form Close之前,释放之
      

  5.   

    托管内存的释放,设为null之后,两次调用GC试试
      

  6.   

    System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet lz试试
      

  7.   

    一般连续调用两次GC.Collect()就可以释放了,如果还不行,那就是你内存泄漏了。