首页 > 其他分享 >WPF之自己退出

WPF之自己退出

时间:2023-10-09 14:46:31浏览次数:185  
标签:自己 应用程序 System Application 关闭 退出 WPF

二、WPF退出窗口方法 

1、强制退出,即使有其他的线程没有结束

Environment.Exit(0);
2、关闭当前程序,如果有其他线程没有结束,不会关闭

System.Windows.Application.Current.Shutdown();

3、强制终止当前进程,不仅关闭应用程序,还会关闭所有子进程

System.Diagnostics.Process.GetCurrentProcess().Kill();

对比这三种区别

  1. Environment.Exit(0); 这种关闭方式通常用于命令行应用程序。它公开了一个应用程序退出的事件,可以被监听并在应用程序关闭前执行一些操作。这会立即结束当前应用程序,并提供一个退出码给操作系统。在这个例子中,退出码是0,一般情况下代表程序正常退出。

  2. System.Windows.Application.Current.Shutdown(); 这种关闭方式是在WPF桌面应用程序中使用的,它会触发Application的Exit事件,然后关闭应用程序。如果有多个窗口打开,它会逐个关闭它们。Shutdown方法也可以接收一个退出码,但是如果不提供,WPF会自动提供一个基于打开的窗口数量的退出码。

  3. System.Diagnostics.Process.GetCurrentProcess().Kill(); 这种关闭方式会立即终止当前的进程,不会触发任何事件或者执行任何清理操作。这是一种非常粗暴的关闭方式,通常只在应用程序出现严重错误无法恢复时才会使用。

总的来说,Environment.Exit和Application.Current.Shutdown是优雅地关闭应用程序的方式,会触发相关事件并释放资源,而Process.GetCurrentProcess().Kill则是一种紧急情况下的关闭方式,可能会导致资源泄露。

标签:自己,应用程序,System,Application,关闭,退出,WPF
From: https://www.cnblogs.com/stweily/p/17751697.html

相关文章

  • 界面控件DevExpress WPF地图组件,助力轻松搭建自己的地图数据服务器!
    DevExpressWPF Map控件允许用户在WPF应用程序中合并所有流行的地图服务,如Bing或OpenStreetMap。您还可以在公司网络中创建自己的地图数据服务器,Map组件完全支持矢量和笛卡尔坐标地图,以及Bing地理代码、搜索、路线和海拔服务。P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付......
  • C语言 模拟用户登陆场景只允许登录三次,错误三次后退出登录
    intmain(){inti=0;charpassword[20]={0};for(i=0;i<3;i++){printf("请输入密码:");scanf("%s",password);if(strcmp(password,"123")==0){printf("登陆成功\n");break;}else......
  • 如何学好编程,快速提高自己的开发能力
    大家好,我是老七,关注我,将持续更新更多精彩内容!文末有福利,免费领取编程学习资料一份编程是当今数字时代中的一项关键技能,不仅可以开启职业生涯的大门,还可以增强问题解决和创造力。然而,学好编程并快速提高开发能力需要一定的方法和策略。本文将介绍一些有效的建议,帮助你在编程领域取得......
  • 【WPF】单例软件实现自重启
    原文地址https://www.cnblogs.com/younShieh/p/17749694.html❤如果本文对你有所帮助,不妨点个关注和推荐呀,这是对笔者最大的支持~❤ 在WPF应用程序中,想要实现软件重启,可以再Start一次该软件的exe程序。但是有些时候我们想要这个程序是唯一运行的单例,而不是可以多开的程序。......
  • 【项目二】WPF掷骰子
    一、素材地址:https://icons8.com/icons/set/dice二、需求分析:WPF框架实现一个掷骰子动画:有6个点数的骰子图片,初始时图片默认为1点,当点击开始按钮后,随机变换图片,2s后定格到当前骰子点数。三、代码实现:1.需要将骰子的6张图片放在项目的"Images"文件夹下,并设置它们的BuildActio......
  • WPF实现语言切换
    本示例实现的是中英文语言切换。开发环境:VS2022、WIN10 一、新建中英文两个key-value对照文件。 二、添加到App.xaml文件。 三、在App.xaml代码文件中创建切换语言和根据key获取value值的方法。usingSystem.Collections;usingSystem.Configuration;usingSystem......
  • 使用RequireJS并实现一个自己的模块加载器 (一)
    使用RequireJS并实现一个自己的模块加载器(一) RequireJS&SeaJS在 模块化开发 开发以前,都是直接在页面上引入 script 标签来引用脚本的,当项目变得比较复杂,就会带来很多问题。JS项目中的依赖只有通过引入JS的顺序来确定,项目会变得复杂难以维护。复杂的脚本会暴露很......
  • JS 全屏和退出全屏--requestFullScreen详解及兼容代码
    浏览器全屏实现方式1.利用h5的 requestFullScreen2.摁F11实现全屏效果requestFullscreen全屏具体实现1.进入全屏   functionfull(ele){ if(ele.requestFullscreen){ ele.requestFullscreen(); }elseif(ele.mozRequestFullScr......
  • 【Vue】自己编写排名组件
    一、需求分析这里我是用Echarts的柱状图,倒置下y轴x轴就实现了,然后产品说跟UI不一致我一看UI这种又给我整不会了,然后想拿Echarts改改参数搞定,同事和群友都是说自己做,不要用Echarts改 二、实现思路同事劝我用ElementUI的进度条组件来实现,进度条见:https://element.eleme.io/......
  • 构建自己的docker镜像
    目录前奏基于当前OS创建自己的镜像让Alpine不再是Alpine防走丢前奏rambo@debian:~$cat/etc/issueDebianGNU/Linux12\n\l基于当前OS创建自己的镜像rambo@debian:~$mkdirmyimagerambo@debian:~$sudocp-a/usr/lib/usr/lib32//usr/lib64//usr/bin/myimage......