Пример #1
0
    public void ExitApp()
    {
        // 发送游戏退出消息
        SendEvent(AppExitEvent.Create());
#if UNITY_EDITOR
        UnityEditor.EditorApplication.isPlaying = false;
#else
        Application.Quit();
#endif
    }
Пример #2
0
        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;
            }
        }