首页 > 编程语言 >WPF处理未捕获异常和程序退出事件

WPF处理未捕获异常和程序退出事件

时间:2023-07-03 10:55:17浏览次数:44  
标签:AppDomain 捕获 程序 Application 线程 UI Exit WPF

Application和AppDomain都有Exit事件,程序正常退出,会依次调用Application的Exit事件和Appdomain的Exit事件。
如果是因为未捕获的异常导致程序退出,则不会调用任何Exit事件。
Appdomain的Exit事件不要再出现UI元素,如弹窗之类的,会导致异常。

AppDomain.UnhandledException会捕获所有Thread线程,Application.DispatcherUnhandledException只会捕获单线程模型的UI线程异常。
普通的Thread线程的未捕获线程,直接抛到AppDomain.UnhandledException处理,单线程模型的UI线程的未捕获异常,先抛到Application.DispatcherUnhandledException
处理,如果被标记成已处理(e.Handled=true),则到此为止,程序不会崩溃退出;如果未标记成已处理,下一步会接着抛到AppDomain.UnhandledException,最后程序崩溃退出。
线程池线程未处理的异常,会被线程池吃掉,既不会抛到Application.DispatcherUnhandledException和AppDomain.UnhandledException,也不会导致程序崩溃退出。如果很在意线程池线程的异常,可以封送线程池异常到UI线程,借助UI线程抛出线程池线程。

标签:AppDomain,捕获,程序,Application,线程,UI,Exit,WPF
From: https://www.cnblogs.com/LiuwayLi/p/17522241.html

相关文章

  • UVA210 双端队列模拟并行程序
    #include<iostream>#include<algorithm>#include<string>#include<sstream>#include<vector>#include<queue>#include<cstring>usingnamespacestd;constintmaxn=10001;//uva210:题意模拟n个程序的并行执行,有赋值,打印,lock,unlock,......
  • PB从入坑到放弃(一)第一个HelloWorld程序
    前言网上关于PowerBuilder的资料确实是少之又少。为了方便,后面我们都用pb来代替PowerBuilder说到这不得不来说说自己的pb入坑经历,自己也不是计算机科班出生。刚到公司面试,听到pb也是一脸懵逼,这啥东西,从来没听过。然而,不知不觉已经干了好几年......
  • 如何在Django中创建一个简单的计算器应用程序
    Django是一个免费开源的PythonWeb框架,可帮助您快速开发安全且可维护的Web应用程序。在本教程中,我将逐步指导您使用django创建计算器应用程序。这是一个适合初学者的教程,因此如果您是Django新手,可以继续学习。(更|多优质内|容:java567点c0m) 我们的计算器应用程序会......
  • BackUpLogView 系列 - 主应用程序下载
     主应用程序下载   TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarianRussianChineseTraditionalIndonesianSlovakCzechItalianSlovenianDanishJa......
  • x64 架构,也称作AMD64或Intel 64,是指一种64位的处理器架构,是对x86架构的扩展和升级。x6
    x64架构,也称作AMD64或Intel64,是指一种64位的处理器架构,是对x86架构的扩展和升级。x64架构支持更大的内存寻址范围和更高的性能,适用于运行64位操作系统和应用程序。x64架构最早由AMD引入,并在2003年取得了广泛的市场认可。随后,Intel也推出了兼容x64架构的处理器。目前,绝大多数......
  • Go 程序里 if else 分支太多?试着用策略模式治理一下吧
     原创 卡尔文_ 网管叨bi叨 2022-11-1608:45 发表于北京收录于合集#用Go学设计模式24个本周发布的设计模式文章,忘记标注原创,这里重新发布一次。本次跟大家分享的是策略模式,是一个可以减少我们在程序流程里不停堆叠ifelse的一个好办法,大家一起学一下吧。大家好,我是......
  • Pycharm执行allure命令报错:allure 不是内部或外部命令,也不是可运行的程序 - 实测有效
    Pycharm执行allure命令报错:allure不是内部或外部命令,也不是可运行的程序现象:1、在doc中正常执行allure命令,只有在pycharm中无法执行2、在pycharm中打印os.environ,没有allureenv_dist=os.environforkeyinenv_dist:if'allure'inenv_dist[key]:print(k......
  • wpf 资源字典 换肤
    介绍一下wpf中给控件更改样式的集中方法,只用button演示,其他控件相同1.使用代码更改button的style定义button的style1<StyleTargetType="Button"x:Key="buttonstyle1"><SetterProperty="Background"Value="LightBlue"/>&l......
  • 一个程序员孤独、久坐的生活方式正在逐渐消耗你的体力
    软件开发中有两个我们经常忽视的事实:这份工作通常是孤独的。这份工作需要长时间坐着。我整天坐在电脑前独自解决问题。我们的工作有着双重性我的工作很棒!我喜欢做一名软件工程师。这些问题很有趣。我整天都可以摆弄电脑。我所在公司的工作与生活平衡很好。相对于全球范围......
  • WPF复习知识点记录
    WPF复习知识点记录由于近几年主要在做Web项目,客户端的项目主要是以维护为主,感觉对于基础知识的掌握没有那么牢靠,趁着这个周末重新复习下WPF的相关知识。文章内容主要来自大佬刘铁锰老师的经典著作《深入浅出WPF》。因为是复习,所以知识内容不会一一记录,如有需要了解更多可以看书......