public static void Destroy() { if (FixedOffset.HaveTimersChanged()) { if (MessageBox.Show("You've changed your timers without saving. Would you like to save your timers?", "Save timers?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { FixedOffset.SaveTimers(Settings.LastLoadedTimers, true); } } UnhookWindowsHookEx(KeyboardHook); TimerUpdateThread.AbortIfAlive(); AudioContext.ClearQueuedAudio(); AudioContext.Destroy(); AudioContext.GlobalDestroy(); File.WriteAllText(SettingsFile, JsonConvert.SerializeObject(Settings)); }