martedì 18 giugno 2013

Rilasciare le risorse implementando IDisposable

Esempio di come rilasciare le risorse implementando l'interfaccia IDisposable.

public class MiaClasseIDisposable
{
    #region DISPOSE
 
    private IntPtr handle;
    private Component component = new Component();
    private bool disposed = false;
 
    [DllImport("Kernel32")]
    private extern static Boolean CloseHandle(IntPtr handle);
 
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }
 
    private void Dispose(bool disposing)
    {
        if (!this.disposed)
        {
            if (disposing)
            {
                component.Dispose();
            }
 
            CloseHandle(handle);
            handle = IntPtr.Zero;
 
            disposed = true;
        }
    }
 
    ~DataBaseHandler()
    {
        Dispose(false);
    }
 
    #endregion
 
    public MiaClasse(IntPtr handle)
    {
        this.handle = handle;
    }
} 

Nessun commento:

Posta un commento