remove requirement o sta thread in no gui scenarios

This commit is contained in:
zznty
2023-04-22 02:51:29 +07:00
parent 181e9297a1
commit 45068ea932
2 changed files with 18 additions and 17 deletions

View File

@@ -102,25 +102,26 @@ namespace Torch.Server
} }
#endif #endif
var gameThread = new Thread(() => var uiThread = new Thread(() =>
{ {
_server.Init(); var ui = new TorchUI(_server);
if (Config.Autostart || Config.TempAutostart) SynchronizationContext.SetSynchronizationContext(
{ new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher));
Config.TempAutostart = false;
_server.Start(); ui.ShowDialog();
}
}); });
gameThread.Start(); uiThread.SetApartmentState(ApartmentState.STA);
uiThread.Start();
var ui = new TorchUI(_server); _server.Init();
SynchronizationContext.SetSynchronizationContext( if (Config.Autostart || Config.TempAutostart)
new DispatcherSynchronizationContext(Dispatcher.CurrentDispatcher)); {
Config.TempAutostart = false;
ui.ShowDialog(); _server.Start();
}
} }
} }

View File

@@ -12,7 +12,7 @@ namespace Torch.Server
{ {
internal static class Program internal static class Program
{ {
[STAThread] [MTAThread]
public static void Main(string[] args) public static void Main(string[] args)
{ {
var configurationBuilder = new ConfigurationBuilder() var configurationBuilder = new ConfigurationBuilder()