.net托管资源虽然有自动回收的机制,不需要我们手动的回收,但是自动回收也不是那么及时,所有还是会引起内存泄露 的问题。想问 如果手动回收.net的托管资源 该怎么做呢?
除了GC.Collect()是否还有其他好的方法呢?.net 托管资源托管资源内存内存泄露.NET

解决方案 »

  1.   

    个人理解我想到的就是即时释放了,例如:用using
      

  2.   

    using(这里面的对象要继承Idispose的吧)
      

  3.   

    using(这里面的对象要继承Idispose的吧)
    Using结束后会隐式的调用Disposable方法。我不知道你所描述的里面对象要继承IDisposable的具体意思。
      

  4.   

    using(这里面的对象要继承Idispose的吧)
    Using结束后会隐式的调用Disposable方法。我不知道你所描述的里面对象要继承IDisposable的具体意思。
    我知道,但是using(这里的对象也要有隐式的Disposable方法才行啊?)
    如果我自己建一个类 是不能直接这样用的
      

  5.   

    向及时回收的话,就try catch finally ,finally里面回收一下。
      

  6.   

    在finally里面要怎么回收呢?使用GC吗?
      

  7.   

    在finally里面要怎么回收呢?使用GC吗?你的目的不是及时回收吗?GC.Collect() collect managed resource.
    对于非托管资源你就close或dispose一下了。
      

  8.   

    楼主可以看一下
    http://www.cnblogs.com/psunny/archive/2009/07/07/1518812.html
      

  9.   

    Using只是及时释放了非托管内存,托管内存的释放还是得等GC
      

  10.   

    在finally里面要怎么回收呢?使用GC吗?你的目的不是及时回收吗?GC.Collect() collect managed resource.
    对于非托管资源你就close或dispose一下了。
    那GC有没有作用域?是回收之前所有的还是当前作用域的?
      

  11.   

    那GC有没有作用域?是回收之前(当前项目)所有的还是当前作用域的?应该是该进程内所有被GC认为应该释放的内存