private void Window_Unloaded(object sender, RoutedEventArgs e) { // Cleanup references which prevents disposal. StartHelper.OnClose -= StartHelper_OnClose; StartHelper.OnRestore -= StartHelper_OnRestore; SettingsManager.Current.SettingChanged -= Current_SettingChanged; SettingsManager.Summaries.Items.ListChanged -= Summaries_ListChanged; SettingsManager.Current.ConfigLoaded -= Current_ConfigLoaded; Global.DHelper.DevicesUpdated -= DHelper_DevicesUpdated; Global.DHelper.UpdateCompleted -= DHelper_UpdateCompleted; Global.DHelper.FrequencyUpdated -= DHelper_FrequencyUpdated; Global.DHelper.StatesRetrieved -= DHelper_StatesRetrieved; Global.DHelper.XInputReloaded -= DHelper_XInputReloaded; SettingsManager.Current.NotifySettingsStatus = null; SettingsManager.SetSynchronizingObject(null); IssuesPanel.IsSuspended = null; IssuesPanel.CheckCompleted -= IssuesPanel_CheckCompleted; UpdateTimer.Elapsed -= UpdateTimer_Elapsed; UpdateTimer.Dispose(); SettingsTimer.Elapsed -= SettingsTimer_Elapsed; SettingsTimer.Dispose(); CleanStatusTimer.Elapsed -= CleanStatusTimer_Elapsed; CleanStatusTimer.Dispose(); StartHelper.Dispose(); DisposeUpdateForm(); DisposeInterfaceUpdate(); CollectGarbage(); }
public void Dispose() { StartHelper.Dispose(); DisposeUpdateForm(); DisposeInterfaceUpdate(); if (Global.DHelper != null) { Global.DHelper.Dispose(); } }