调用Dispose可以手动释放资源,你可以在Dispose中释放你的资源。
这样并不是说资源已经释放掉了,而是告诉Net的垃圾回收机制,这些资源需要释放,具体的释放工作还是垃圾回收机制来做。
如果不调用Dispoe,net无法明确的知道是否要释放你的资源,这样在资源的释放上会有延迟。当然资源最终还是会被释放掉的。

解决方案 »

  1.   

    实现IDisposable接口的对象,里面必然有一个Dispose()方法
    通过这个方法你可以知道对象会被怎样的销毁
    在CLR收集垃圾之前,你可以利用Dispose()方法做一些其他事情,比如关闭数据库连接,关闭文件流等等
      

  2.   


    用.Dispose();释放资源后,
    紧跟一个 System.GC.Collect();频繁调用 System.GC.Collect();
    是否会影响运行效率?