static void Main() { var app = new App { ShutdownMode = ShutdownMode.OnExplicitShutdown }; SynchronizationContext.SetSynchronizationContext(new DispatcherSynchronizationContext()); var program = new Program(); program.RequestedExit += (sender, e) => app.Shutdown(); var task = program.StartAsync(); HandleExceptions(task, app); app.Run(); }