diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index 9e31fc800c..4c81716ed5 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -224,23 +224,23 @@ namespace MediaBrowser.ServerApplication // Not crazy about this but it's the only way to suppress ffmpeg crash dialog boxes SetErrorMode(ErrorModes.SEM_FAILCRITICALERRORS | ErrorModes.SEM_NOALIGNMENTFAULTEXCEPT | ErrorModes.SEM_NOGPFAULTERRORBOX | ErrorModes.SEM_NOOPENFILEERRORBOX); - } - - var task = _appHost.Init(initProgress); - Task.WaitAll(task); - - task = _appHost.RunStartupTasks(); - Task.WaitAll(task); - - SystemEvents.SessionEnding += SystemEvents_SessionEnding; - SystemEvents.SessionSwitch += SystemEvents_SessionSwitch; + } + + + var task = _appHost.Init(initProgress); + task = task.ContinueWith(new Action(a => _appHost.RunStartupTasks())); if (runService) - { + { StartService(logManager); } else - { + { + Task.WaitAll(task); + + SystemEvents.SessionEnding += SystemEvents_SessionEnding; + SystemEvents.SessionSwitch += SystemEvents_SessionSwitch; + HideSplashScreen(); ShowTrayIcon();