Despose模式

  class Obj : IDisposable
    {
       
bool disposed;

       
~Obj()
        {
           
//被GC调用
            Dispose(false);
        }

       
publicvoid Dispose()
        {
           
//用户调用
            Dispose(true);
        }


       
void Dispose(bool disposing) { if (!disposed)
            {
               
if (disposing)
                {
                   
//这里表明此方法被用户调用,这里释放所有托管资源(如调用其他对象的Dispose())
                }
               
//释放任何非托管资源
               
//防止用户调用后,GC再重复调用
                GC.SuppressFinalize(this);
               
//防止用户重复调用
                disposed =true;
            }
        }
    }

posted on 2012-09-14 15:50  Q&A  阅读(223)  评论(0)    收藏  举报