public void Dispose() { if (disposed) { return; } disposed = true; MainLoop.QueueWait(() => { dhtEngine.Dispose(); diskManager.Dispose(); listenManager.Dispose(); localPeerListener.Stop(); localPeerManager.Dispose(); MainLoop.Dispose(); }); }