Dotnet中Dispose的设计模式介绍
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Dotnet中Dispose的设计模式介绍
让我们一起来看看Dotnet中Dispose的设计模式具体内容吧!NET的GC 机制有这样两个问题:
首先,GC并不是能释放所有的资源。
它不能自动释放非托管资源。
第二,GC并不是实时性的,这将会造成系统性能上的瓶颈和不确定性。
为了解决第一个问题,.NET提供了析构函数,在C#中是~ClassName的形式。
如果某个类定义了析构函数,.NET会在第一次的GC中调用析构函数,第二次才真正进行资源释放。
这就允许了我们能够做一些手动的资源管理操作,手动对非托管资源进行清理。
但是如果没有必要,定义析构函数就会对性能造成较大的影响。
仅仅依赖析构函数对非托管资源进行释放是不够的,这是由于第二个问题:GC并不是实时性的,这会造成系统性能上的瓶颈和不确定性。
所以有了IDisposable接口,IDisposable接口定义了Dispose方法,这个方法用来供程序员显式调用以释放非托管资源。
通常我们应该这样写程序:
public class SampleClass : System.IDisposable。