void OnApplicationExitHandler(bool isShutdown) { lock (cleanupLocker) { if (isCleanupDone) { return; } setting.isShutdown = isShutdown; pluginsServ.Cleanup(); notifier.Cleanup(); servers.Cleanup(); setting.Cleanup(); isCleanupDone = true; } }
void OnApplicationExitHandler(bool isShutdown) { lock (cleanupLocker) { if (isCleanupDone) { return; } setting.isShutdown = isShutdown; notifier.Cleanup(); servers.Cleanup(); pacServer.Cleanup(); setting.Cleanup(); Lib.Sys.ProxySetter.SetProxy(orgSysProxySetting); isCleanupDone = true; } }
Launcher() { // warn-up var cache = Cache.Instance; var pacServer = PacServer.Instance; setting = Setting.Instance; servers = Servers.Instance; notifier = Notifier.Instance; // set culture SetCulture(setting.culture); // dependency injection Lib.ImportParser.Run(cache); pacServer.Run(setting); servers.Run(setting, pacServer, cache); notifier.Run(setting, servers); Application.ApplicationExit += (s, a) => { notifier.Cleanup(); servers.Cleanup(); pacServer.Cleanup(); setting.Cleanup(); }; Microsoft.Win32.SystemEvents.SessionEnding += (s, a) => Application.Exit(); Application.ThreadException += (s, a) => SaveUnHandledException( a.Exception.ToString()); AppDomain.CurrentDomain.UnhandledException += (s, a) => SaveUnHandledException( (a.ExceptionObject as Exception).ToString()); }