public override void Dispose () { if (disposed) return; disposed = true; base.Dispose (); if (mtp_device != null) { lock (mtp_device) { mtp_device.Dispose (); } } ServiceManager.SourceManager.RemoveSource (this); mtp_device = null; }