download AbstractDisposable.cs
Language: C#
LOC: 42
Project Info
ncindy - NCindy is a .NET port of the Cind...work.(ncindy)
Server: Google
Type: svn
...indy\trunk\src\NCindy\Util\
   AbstractDisposable.cs
   AysncCallWrapper.cs
   Configuration.cs
   ElapsedTime.cs
   LangHelper.cs
   LockHelper.cs
   SocketFactory.cs
   ValueTypeWrapper.cs
   WinSock2Wrapper.cs

using System;

namespace NCindy.Util
{
    /// <summary>
    /// ҪDispose̳ͣʹ
    /// </summary>
    public abstract class AbstractDisposable : IDisposable
    {
        private bool alreadyDisposed = false;

        protected bool AlreadyDisposed
        {
            get
            {
                return this.alreadyDisposed;
            }
        }

        ~AbstractDisposable()
        {
            Dispose(false);
        }

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

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

            if (isDisposing)
            {
                ReleaseManagedResources();
            }

            ReleaseUnManagedResources();

            alreadyDisposed = true;
        }

        protected virtual void ReleaseManagedResources()
        {
            return;
        }

        protected abstract void ReleaseUnManagedResources();
    }
}

About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us