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

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");
            }
        }  

    }
posted @ 2011-10-06 11:33  常伟华  阅读(197)  评论(0)    收藏  举报