public void RegisterDht(IDhtEngine engine) { MainLoop.QueueWait(delegate { if (dhtEngine != null) { dhtEngine.StateChanged -= DhtEngineStateChanged; dhtEngine.Stop(); dhtEngine.Dispose(); } dhtEngine = engine ?? new NullDhtEngine(); }); dhtEngine.StateChanged += DhtEngineStateChanged; }