黑马程序员技术交流社区

标题: 都有哪些类需要Dispose()释放资源? [打印本页]

作者: 黑马-金鑫    时间: 2012-9-8 19:18
标题: 都有哪些类需要Dispose()释放资源?
除了SqlConnection  SqlCommod  Stream  还有哪些需要手动释放资源?
作者: 许庭洲    时间: 2012-9-9 12:47
using(SqlDataReader rdResult = SqlCommand.ExecuteReader())//表明SqlDataReader 也需要手动释放资源

        

作者: 李京    时间: 2012-9-9 15:59
调用Dispose可以手动释放资源,你可以在Dispose中释放你的资源。
这样并不是说资源已经释放掉了,而是告诉Net的垃圾回收机制,这些资源需要释放,具体的释放工作还是垃圾回收机制来做。
如果不调用Dispoe,net无法明确的知道是否要释放你的资源,这样在资源的释放上会有延迟。当然资源最终还是会被释放掉的。
在CLR收集垃圾之前,你还可以可以利用Dispose()方法做一些其他事情,比如关闭数据库连接,关闭文件流等等

这里我感觉你对dispose的理解有点误差。
我感觉dispose是明确告诉.NET哪些东西没有用需要回收,而不是利用这个方法去回收.NET不去回收的东西。


个人意见啊,欢迎讨论。
作者: 吴瑞祥    时间: 2012-9-9 16:01
应该是用NEW运算符生成的空间,都需要吧
作者: iamheima    时间: 2012-9-10 23:54
实现了IDisposable接口的都需要自己手动释放。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2