using System.Collections.ObjectModel; using System.Windows; namespace SHH.CameraDashboard { /// /// Interaction logic for App.xaml /// public partial class App : Application { protected override async void OnStartup(StartupEventArgs e) { base.OnStartup(e); // 1. 【核心代码】程序启动时,异步读取配置文件 var savedNodes = await LocalStorageService.LoadAsync>(AppPaths.ServiceNodesConfig); if (savedNodes != null) { foreach (var node in savedNodes) AppGlobal.ServiceNodes.Add(node); } // 3. 启动主窗口 // 注意:如果 LoadAsync 耗时较长,这里可能会导致启动画面停留, // 实际项目中可以搞一个 Splash Screen (启动屏) 来做这件事。 var mainWin = new MainWindow(); mainWin.Show(); } /// /// 全局统一退出入口 /// public static void ShutdownApp() { // 1. 这里可以处理统一的资源清理逻辑 (如停止摄像头推流、关闭数据库连接) // 2. 保存用户配置 // 3. 彻底退出 Current.Shutdown(); } } }