Dotnet中Dispose的设计模式介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档