diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-05-15 13:14:02 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-05-15 13:14:02 -0400 |
| commit | 1e299549a8d459ffa6931617bb3d281f696e6062 (patch) | |
| tree | 78b0738ba42347521227b28ef5c4fe5bb36aade4 /MediaBrowser.ServerApplication/MainStartup.cs | |
| parent | 780d5b914cc22bdf88477761e60c5de64b20504d (diff) | |
| parent | 3dadeeae7b12be43ace187dede3d451e867b6c24 (diff) | |
Merge branch 'beta'
Diffstat (limited to 'MediaBrowser.ServerApplication/MainStartup.cs')
| -rw-r--r-- | MediaBrowser.ServerApplication/MainStartup.cs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index cbf7d298c9..dc61dcda8e 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -273,11 +273,13 @@ namespace MediaBrowser.ServerApplication } private static ServerNotifyIcon _serverNotifyIcon; + private static TaskScheduler _mainTaskScheduler; private static void ShowTrayIcon() { //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); _serverNotifyIcon = new ServerNotifyIcon(_appHost.LogManager, _appHost, _appHost.ServerConfigurationManager, _appHost.LocalizationManager); + _mainTaskScheduler = TaskScheduler.FromCurrentSynchronizationContext(); Application.Run(); } @@ -321,6 +323,18 @@ namespace MediaBrowser.ServerApplication } } + public static void Invoke(Action action) + { + if (_isRunningAsService) + { + action(); + } + else + { + Task.Factory.StartNew(action, CancellationToken.None, TaskCreationOptions.None, _mainTaskScheduler ?? TaskScheduler.Current); + } + } + /// <summary> /// Starts the service. /// </summary> @@ -555,9 +569,10 @@ namespace MediaBrowser.ServerApplication private static void ShutdownWindowsApplication() { - _logger.Info("Calling Application.Exit"); - Application.Exit(); + //_logger.Info("Calling Application.Exit"); + //Application.Exit(); + _logger.Info("Calling Environment.Exit"); Environment.Exit(0); _logger.Info("Calling ApplicationTaskCompletionSource.SetResult"); |
