diff --git a/Torch.Server/Initializer.cs b/Torch.Server/Initializer.cs index c5ecd2a..7b1cf91 100644 --- a/Torch.Server/Initializer.cs +++ b/Torch.Server/Initializer.cs @@ -102,25 +102,26 @@ namespace Torch.Server } #endif - var gameThread = new Thread(() => + var uiThread = new Thread(() => { - _server.Init(); - - if (Config.Autostart || Config.TempAutostart) - { - Config.TempAutostart = false; - _server.Start(); - } + var ui = new TorchUI(_server); + + SynchronizationContext.SetSynchronizationContext( + new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher)); + + ui.ShowDialog(); }); - gameThread.Start(); - - var ui = new TorchUI(_server); - - SynchronizationContext.SetSynchronizationContext( - new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher)); - - ui.ShowDialog(); + uiThread.SetApartmentState(ApartmentState.STA); + uiThread.Start(); + + _server.Init(); + + if (Config.Autostart || Config.TempAutostart) + { + Config.TempAutostart = false; + _server.Start(); + } } } diff --git a/Torch.Server/Program.cs b/Torch.Server/Program.cs index 142f653..07bf777 100644 --- a/Torch.Server/Program.cs +++ b/Torch.Server/Program.cs @@ -12,7 +12,7 @@ namespace Torch.Server { internal static class Program { - [STAThread] + [MTAThread] public static void Main(string[] args) { var configurationBuilder = new ConfigurationBuilder()