protected override void OnStop() { _logger.Info("Requesting Adapter Stop"); _adapter.Stop(); _adapterWorkerThread.Wait(); _adapterWorkerThread.ContinueWith(task => { _logger.InfoFormat("Adapter successfully stopped"); Environment.Exit(0); }); if (_supervisor != null) { _supervisor.Dispose(); } }