protected override void Dispose(bool disposing) { if (disposing) { // Dispose managed } if (!IsInvalid) { // Dispose unmanaged try { if (_callbacks != null) { _callbacks.Dispose(); _callbacks = null; } lock (Spotify.Mutex) { Ensure(() => Spotify.sp_search_release(Handle)); } } catch { } } base.Dispose(disposing); }