protected override void OnStartup(StartupEventArgs e) { var preloaderThread = new Thread(() => { _preloader = new Preloader(); _preloader.ContentRendered += Preloader_ContentRendered; _preloader.ShowDialog(); Dispatcher.Run(); }); preloaderThread.SetApartmentState(ApartmentState.STA); preloaderThread.IsBackground = true; preloaderThread.Start(); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; base.OnStartup(e); }