调用Dispose可以手动释放资源,你可以在Dispose中释放你的资源。
这样并不是说资源已经释放掉了,而是告诉Net的垃圾回收机制,这些资源需要释放,具体的释放工作还是垃圾回收机制来做。
如果不调用Dispoe,net无法明确的知道是否要释放你的资源,这样在资源的释放上会有延迟。当然资源最终还是会被释放掉的。
在CLR收集垃圾之前,你还可以可以利用Dispose()方法做一些其他事情,比如关闭数据库连接,关闭文件流等等
这里我感觉你对dispose的理解有点误差。
我感觉dispose是明确告诉.NET哪些东西没有用需要回收,而不是利用这个方法去回收.NET不去回收的东西。
个人意见啊,欢迎讨论。 |