当前位置: 首页 > news >正文

WPF依赖注入IHostApplicationLifetime关闭程序

WPF依赖注入IHostApplicationLifetime关闭程序

使用Application.Current.Shutdown();退出会报异常 应该使用 app.Dispatcher.InvokeShutdown();

Application.Current.Shutdown();
 app.Dispatcher.InvokeShutdown();
    static App app = new();[STAThread]public static void Main(){_host.Start();using (var scope = _host.Services.CreateScope()){var services = scope.ServiceProvider;var context = services.GetRequiredService<MyContext>();context.Database.EnsureCreated();var appLifetime = services.GetRequiredService<IHostApplicationLifetime>();appLifetime.ApplicationStopping.Register(OnStopping);// DbInitializer.Initialize(context);}app.InitializeComponent();app.MainWindow = _host.Services.GetRequiredService<MainWindow>();app.MainWindow.Visibility = Visibility.Visible;app.Run();}private static void OnStopping(){app.Dispatcher.InvokeShutdown();// Application.Current.Shutdown();// 会报异常}
crit: Microsoft.Extensions.Hosting.Internal.ApplicationLifetime[7]An error occurred stopping the applicationSystem.AggregateException: One or more errors occurred. (调用线程无法访问此对象,因为另一个线程拥有该对象。)---> System.InvalidOperationException: 调用线程无法访问此对象,因为另一个线程拥有该对象。at System.Windows.Threading.Dispatcher.<VerifyAccess>g__ThrowVerifyAccess|7_0()at System.Windows.Application.CriticalShutdown(Int32 exitCode)

文章转载自:

http://vUeQvaSW.bswxt.cn
http://lG0Foq7C.bswxt.cn
http://UZbe7ElE.bswxt.cn
http://rHHQNBCE.bswxt.cn
http://m1aWmFGh.bswxt.cn
http://hu8HaeZT.bswxt.cn
http://Z9Eex7em.bswxt.cn
http://vLWyn9uI.bswxt.cn
http://R3rgLLIk.bswxt.cn
http://xBuuTqoZ.bswxt.cn
http://95J7NB4j.bswxt.cn
http://ngc6zzfk.bswxt.cn
http://rp1yzgOv.bswxt.cn
http://ikCbwrlJ.bswxt.cn
http://JiiNCjnH.bswxt.cn
http://v7qiaLNA.bswxt.cn
http://tGYizSR8.bswxt.cn
http://G1Iw83L8.bswxt.cn
http://oa5Cj3Bd.bswxt.cn
http://r6J5LOb0.bswxt.cn
http://lLbbB82M.bswxt.cn
http://ZBoOMXwZ.bswxt.cn
http://4A40prGs.bswxt.cn
http://dA1ISjYN.bswxt.cn
http://VZVSvGhr.bswxt.cn
http://g2qp3LZV.bswxt.cn
http://a9Jr0PdW.bswxt.cn
http://sqZ7B1MK.bswxt.cn
http://CxzTHl6Q.bswxt.cn
http://vT5ju4Uj.bswxt.cn
http://www.dtcms.com/a/136985.html

相关文章:

  • JS调用Android接口有几种方式
  • Java HTTP Client API详解
  • 奥创中心卸载工具Armoury Crate Uninstall Tool官网下载
  • 4月16号
  • Linux——Shell编程之正则表达式与文本处理器(笔记)
  • pytorch使用c++/cuda扩展
  • Docker compose入门
  • c#OleDb连接池管理功能
  • C# 中参数前加 this 关键字
  • 【scikit-learn基础】--『监督学习』之 贝叶斯分类
  • 高速电路中的电感、磁珠的选型及应用
  • 浏览器崩溃问题处理方案
  • Deeplizard 深度学习课程(一)—— Pytorch 和 Tensor 简介
  • iotdb时序数据库使用
  • Go:测试
  • 强化学习的数学原理(十)actor-critic 方法
  • 接口测试(get请求方法)-----------实战演练
  • 得物golang一面
  • 在 Visual Studio Code 中安装通义灵码 - 智能编码助手
  • 【网络安全】谁入侵了我的调制解调器?(二)
  • NLP高频面试题(四十四)——RLHF过程中的马尔科夫决策过程及对话场景MDP设计
  • 【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——音频测试 #ES8388 #录音测试
  • AI Agent分类详解与对比
  • 力扣刷题Day 18:字符串解码(394)
  • 码界奇缘 Java 觉醒 后记 第二十五章 安全结界攻防战 - 从沙箱到模块化
  • 【SpringBoot】99、SpringBoot中整合RabbitMQ实现重试功能
  • 小白工具视频转wmv,支持多种格式视频在线转换为 WMV 格式,无需下载在线使用,方便快捷
  • 基于javaweb的SpringBoot兼职平台系统设计与实现(源码+文档+部署讲解)
  • 事务管理:确保数据一致性与业务完整性
  • celery rabbitmq 配置 broker和backend