void Dispose(bool disposing) { if (_disposed) return; if (disposing) { FreeManagedObjects(); } if (Handle != IntPtr.Zero) { FreeUnManagedObjects(); Handle = IntPtr.Zero; } _disposed = true; }