.net非托管资源的回收方法(3)

public class ResourceHolder : IDisposable
{
      private bool isDispose = false;
      // 显示调用的Dispose方法
  public void Dispose()
      {
           Dispose(true);
          GC.SuppressFinalize(this);
       }
       // 实际的清除方法
  protected virtual void Dispose(bool disposing)
      {
            if (!isDisposed)
           {
              if (disposing)
           {
                      // 这里执行清除托管对象的操作.
                  }
                  // 这里执行清除非托管对象的操作
            }
         isDisposed=true;
      }
      // 析构函数
      ~ResourceHolder()
      {
            Dispose (false);
      }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjzdyz.html