请问asp.net何时该调用Dispose,释放资源??
请问asp.net何时该调用Dispose,释放资源
[解决办法]
ls就不要再误导lz了。说得根本没有一点正确。
首先要明白的第一点是,Dispose() 方法只属于那些实现了 IDispose 接口的类。因此 Dispose() 可以释放内存这个说法就荒谬了,你让那些没有实现 IDispose 的类内牛满面。
我们知道 .NET 是自动垃圾回收的,回收内存根本不需要另外的方法,为什么一些类提供 Dispose() 方法呢?主要是释放内存以外的资源,比如非托管的内存、句柄、数据库连接、网络甚至外部设备。总之,不同的对象,释放的东西可能完全不同。
Dispose() 和 ASP.NET 完全没有关系,它属于那些实现了 IDispose 的类。如果一个类实现了 IDispose,那么你就要好好看看它的文档,上面会介绍如何使用,以及什么时候使用它。然而一些对象,出于防呆设计或者其他原因,不调用 Dispose() 也不会出现问题,或者只在特定情况下出问题,比如在池模式或者单键模式下,Dispose() 就不需要调用。所以还是要看文档。
最后,关于using,提供了对 Dispose() 调用的语法糖,这似乎是每个.NET程序员必备的知识,但是很遗憾,在论坛里面几乎没有几个人能说正确。我想没有耐心或者能力看懂MSDN的人,我也没有办法把他教会,反之也不需要我赘述,只是说ls的说法是典型的错误不要误导别人。
[解决办法]