public void Dispose() { bDisposing = true; if (WorkerThread != null) { RefreshEvent.Set(); if (!WorkerThread.Join(100)) { WorkerThread.Abort(); } WorkerThread = null; } if (LogWriter != null) { LogWriter.Dispose(); LogWriter = null; } }
protected override void Dispose(bool bDisposing) { base.Dispose(bDisposing); if (Components != null) { Components.Dispose(); Components = null; } if (Log != null) { Log.Dispose(); Log = null; } if (UpdateMonitor != null) { UpdateMonitor.OnUpdateAvailable -= OnUpdateAvailableCallback; UpdateMonitor.Close(); // prevent race condition UpdateMonitor = null; } if (ActivationListener != null) { ActivationListener.OnActivate -= OnActivationListenerAsyncCallback; ActivationListener.Stop(); ActivationListener.Dispose(); ActivationListener = null; } if (MainWindowInstance != null) { MainWindowInstance.ForceClose(); MainWindowInstance = null; } if (DetectStartupProjectSettingsWindow != null) { DetectStartupProjectSettingsWindow.Close(); DetectStartupProjectSettingsWindow = null; } }