首页 > WPF关闭应用程序,释放Window窗口资源方法

WPF关闭应用程序,释放Window窗口资源方法

WindowsForm里一个Application.Exit();方法就可以关闭应用程序,释放掉资源。

WPF里Application类没有该方法,但是有一个Exit的事件驱动,在WPF应用程序里面关闭程序讲究很多:

在WPF应用程序的关闭是有ShutdownMode属性设置,具有3中枚举类型的值:

1)OnLastWindowClose 应用程序最后一个窗体关闭时关闭应用程序

2)OnMainWindowClose 应用程序主窗体关闭时关闭应用程序

3)OnExplicitShutdown   显示调用关闭

在OnExplicitShutdown模式下必须显示调用Application实例的ShutDown方法

例如:Application.Current.Shutdown(-1);

Application.Current.ShutdownMode=ShutdownMode.OnLastWindowClose;

这里Application.Current返回当前应用程序的当前Application实例。

注意以上不适应XBAP,XBAP在浏览器关闭时自动关闭。

例如在.cs里面

    protected override void OnClosed(EventArgs e)

        {

            //Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose;

            //if (this.IsAfreshLogin == true) return;

            Application.Current.Shutdown();

            base.OnClosed(e);

        }

另外,还有一种强制终止应用程序进程的方法

Environment.Exit(0)可以立即中断程序执行并退出

这个方法用起来的感觉类似在任务管理器里找到进程并终止,即立刻关闭进程,不管该进程目前有没有工作,在做什么工作。

在WPF中调用该方法即立即退出,不会等待当前工作完成。

需求:需要在许多子窗体中关闭整个程序(WPF)

winform实现:Application.Exit();

转载于:https://www.cnblogs.com/GeneralKING/archive/2012/08/24/2654657.html

更多相关:

  • 我试图用Tkinter制作一个简单的GUI,它使用Matplotlib生成大量绘图并将它们保存到硬盘上。在附件是一个简单的代码,但是在保存了所有绘图之后,Tkinter GUI关闭,脚本停止。我想这个问题可能与plt.关闭(),因为当我删除plt.关闭(),GUI窗口不再关闭,但毫不奇怪,内存很快就会被填满,直到整个程序崩溃。在而不是...

  • 四次挥手 主动关闭连接的一方,调用close,协议层发送FIN包,在TCP报头的FIN字段设置为1,意思是我要和你断开链接,主动关闭连接的一方进入到了FIN_WATI_1状态 被动关闭的一方收到了FIN包之后,协议层回复ACK包,在他的TCP报头中将ACK设置为1,表示收到了对方的关闭连接请求,被动 的一方进入到了CLOSE_W...

  •    在TestNG运行自动化测试用例的时候,浏览器FireFox正确打开,可是在测试用例运行完成后,我调用的是webdriver.quit()关闭程序的,结果却报以下错误:    Sep 25, 2014 4:19:32 PM org.openqa.selenium.os.UnixProcess$SeleniumWatchDog d...

  • 2019独角兽企业重金招聘Python工程师标准>>> tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854   0x4745 为"GET"前两个字母"GE" 0x4854 为"HTTP"前两个字母"HT" 说明: 通常情况下:一个正常的TCP连...

  • MQ MQ传递主干, 在世界屡获殊荣。 它帮您搭建企业服务总线(ESB)的基础传输层。IBM WebSphere MQ为SOA提供可靠的消息传递。它为经过验证的消息传递主干, 全方位、 多用途的数据传输, 并帮助您搭建企业服务总线的传输基础设施。 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针...

  • 原文:http://android.eoe.cn/topic/android_sdk 是AndroidManifest.xml文件中的根标签,她必须包含一个标签和指定的xmlns:android、 package两个属性。 属性: xmlns:android定义了Android的命名空间。这个属性一般可以设置为:"http://sch...

  • 1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName -获取模块的完整路径。 2.System.Environment.CurrentDirectory -获取和设置当前目录(该进程从中启动的目录)的完全限定目录。 3.System.IO.Dire...

  •       上篇介绍了应用程序从源码到安装包的整个过程,考虑到篇幅过长,遂将原理内容分成两部分来介绍。接下来,在本篇中,主要介绍Android平台应用程序的运行原理。       在阅读了SDK文档中“Application Fundamentals”一篇的内容后,根据自己的理解绘制了下面的示意图:       每个应用程序安装后,...

  • 来源:公众号|计算机视觉工坊(系投稿)作者:仲夏夜之星「3D视觉工坊」技术交流群已经成立,目前大约有12000人,方向主要涉及3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、...

  • 点云PCL免费知识星球,点云论文速读。文章:Real-Time LIDAR-Based Urban Road and Sidewalk Detection for Autonomous Vehicles作者:Ern˝o Horváth  , Claudiu Pozna ,and Miklós Unger编译:点云PCL代码:http...

  • 文章:Semantic Histogram Based Graph Matching for Real-Time Multi-Robot Global Localization in Large Scale Environment作者:Xiyue Guo, Junjie Hu, Junfeng Chen, Fuqin Deng, T...

  • 点云PCL免费知识星球,点云论文速读。文章:Robust Place Recognition using an Imaging Lidar作者:Tixiao Shan, Brendan Englot, Fabio Duarte, Carlo Ratti, and Daniela Rus编译:点云PCL(ICRA 2021)开源代码:...

  • 文章:A Survey of Calibration Methods for Optical See-Through Head-Mounted Displays作者:Jens Grubert , Yuta Itoh, Kenneth Moser编译:点云PCL本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PD...