public void ExitApp() { // 发送游戏退出消息 SendEvent(AppExitEvent.Create()); #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false; #else Application.Quit(); #endif }
public static async Task Main(string[] args) { try { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; BuildServices(); Conductor = Services.GetRequiredService <Conductor>(); CasterSocket = Services.GetRequiredService <CasterSocket>(); Conductor.ProcessArgs(args); if (Conductor.Mode == Core.Enums.AppMode.Chat) { StartUiThreads(null); await Task.Run(async() => { var chatService = Services.GetRequiredService <IChatHostService>(); await chatService.StartChat(Conductor.RequesterID, Conductor.OrganizationName); }); } else if (Conductor.Mode == Core.Enums.AppMode.Unattended) { StartUiThreads(null); App.Current.Dispatcher.Invoke(() => { App.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown; }); await Task.Run(StartScreenCasting); } else { StartUiThreads(() => new MainWindow()); } App.Current.Dispatcher.Invoke(() => { App.Current.Exit += (sender, exitArgs) => { AppExitEvent.Set(); }; }); AppExitEvent.WaitOne(Timeout.Infinite); } catch (Exception ex) { Logger.Write(ex); throw; } }