如果我做conn.Dispose(); (其中conn是SqlConnection类的一个实例),是否会清除堆中的conn对象?
Dar*_*rov 13
不,调用Dispose不会清除堆中的连接.在SqlConnection实例上调用Dispose方法时,只需将连接返回到底层连接池即可.它甚至没有关闭连接.ADO.NET使用连接池.因此,当您创建SqlConnection的新实例时,您不打开新连接,只需从连接池中绘制一个连接,当您调用Dispose时,只需将此连接返回到连接池,以便可以重用它.
通常IDisposable,.NET中的模式旨在由包含某些非托管资源的指针的类实现.调用Dispose方法可确保正确释放这些非托管资源.
从堆中删除对象是垃圾收集器所做的事情,当这种情况发生时是一个非确定性事件(您无法控制它).
| 归档时间: |
|
| 查看次数: |
3992 次 |
| 最近记录: |