标准的非托管资源的销毁模式

public class MyResourceHog : IDisposable
    {
        //是否已经Disposed的标记
        private bool alreadyDisposed = false;

        public void IDisposable.Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        public virtual void Dispose(bool isDisposing)
        {
            if (alreadyDisposed)
            {
                return;
            }

            if (isDisposing)
            {
                Console.WriteLine("释放资源成功!");
            }

            alreadyDisposed = true;

        }

        public void ExampleMethod()
        {
            if (alreadyDisposed)
            {
                throw new ObjectDisposedException("MyResourceHog", "Called Example on Disposed object");
            }
        }  

    }
原文地址:https://www.cnblogs.com/changweihua/p/2199831.html