nativeresourceholder.cs

来自「Microsoft Mobile Development Handbook的代码」· CS 代码 · 共 43 行

CS
43
字号
using System;
using System.Collections.Generic;
using System.Text;

namespace CodeForChapter5cs
{
class NativeResourceHolder : IDisposable 
{
  private bool alreadyDisposed = false;

  // This method  does the cleanup
  // gets called only from finalizer(true) OR from Dispose(false)
  // protected virtual so subclasses can override it
  protected virtual void Dispose(bool calledFromFinalizer)
  {
    if (alreadyDisposed)
    {
      return;
    }
    alreadyDisposed = true;

    if (!calledFromFinalizer)
    {
      // if we hold other IDisposablereferences, call their Dispose method
      // cannot do this from finalizer; they may have already been disposed
    }

    // always free native resources, e.g. handles
  }

  public void Dispose()
  {
    this.Dispose(false);
    GC.SuppressFinalize(this); // get rid of finalizer!
  }

  ~NativeResourceHolder()
  {
    this.Dispose(true);
  }
}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?