【转】winform退出代码:Application.Exit和Environment.Exit(0)

Application.Exit和Environment.Exit(0)有什么退出方面的区别吗?

Application.Exit:通知winform消息循环退出。会在所有前台线程退出后,退出应用

强行退出方式,就像 Win32 的 PostQuitMessage()。它意味着放弃所有消息泵,展开调用堆栈,并将执行返回给系统

方法停止在所有线程上运行的所有消息循环,并关闭应用程序的所有窗口

Environment.Exit:立即终止当前进程,应用程序即强制退出。返回exitcode给操作系统,

相比之下Environment.Exit更狠些

因此我们可以构造以下的restart()函数重新启动应用程序 
        private static void ReStart() 
        {

Application.Exit(); 
            System.Diagnostics.Process.Start(Application.ExecutablePath);


用Environment.Exit就无法完成这个功能

时间: 2024-12-28 22:10:38

【转】winform退出代码:Application.Exit和Environment.Exit(0)的相关文章

c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0);

本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退

c# winform退出当前程序的一些方法

this.Close(); //只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: Application.Exit(); //强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出: Application.ExitThread();// 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题: System.Environment.Exit(0); //这是最彻底的退出方式,不管什么线程都被强制退出,把程

winform退出或关闭窗体时弹窗提示代码:转

winform退出或关闭窗体时弹窗提示代码,当我们点击窗体的 X 按钮时,会弹出一个对话框,询问我们是直接退出,还是最小化到托盘,还是取消这个行为.或是是否保存当前修改等等.以下以最小化到托盘为例.        首先, 要确定已经将控件NotifyIcon拖到应用窗体中,属性name为notifyicon1. 然后, 双击窗体的FormClosing的事件 ,具码内容如下: private void Form1_FormClosing(object sender, FormClosingEve

【转】iis解决应用程序池**提供服务的进程意外终止进程ID是**。进程退出代码是'0x80'

转自:http://blog.sina.com.cn/s/blog_56a68d5501013xdd.html 我们公司旗下的红黑互联会遇到这种问题 事件类型: 警告事件来源: W3SVC事件种类: 无事件 ID: 1009日期: 事件: XX:XX:XX用户: XX计算机: XXXX描述:为应用程序池 XXXXX 提供服务的进程意外终止.进程 ID 是 XXXX.进程退出代码是 0x80.有关更多信息,请参阅在 asp">http://go.microsoft.com/fwlink/ev

登录退出代码

1.登录代码 /// <summary> /// 登陆 /// </summary> /// <param name="userNo"></param> /// <param name="password"></param> /// <param name="persistCookie"></param> /// <returns><

Lc.exe已退出 代码为-1

今天使用vs2010开发,有人在vss项目中增加了一个第三方组件,后来删除了,我的计算机上没有这个第三方组件,结果导致了LC.exe错误:"Lc.exe已退出 代码为-1 " 解决方法: 1.把项目文件夹下Properties文件夹下的licenses.licx文件删除,重新编译即可: 2.文本方式打开*.csproj文件,在文件中查找licenses.licx字样,删除对应节点. 注意:还有一种情况就是Properties文件夹下已经没有licenses.licx文件了,程序还是报这

oracle创建监听Oracle Net Services 配置失败。退出代码是1

netca /silent /responseFile /usr/local/soft/oracle/netca.rsp 出现错误提示如下: [[email protected] oracle]$ netca /silent /responseFile /usr/local/soft/oracle/netca.rsp 正在对命令行参数进行语法分析: 参数"silent" = true 参数"responsefile" = /usr/local/soft/oracle

Oracle Net Services 配置: Error: null Oracle Net Services 配置失败。退出代码是1

具体错误描述: [[email protected] ~]$ netca /silent/responseFile /usr/local/soft/oracel/netca.rsp 正在对命令行参数进行语法分析: 传递的错误命令行参数:"silent/responsefile" 传递的错误命令行参数:"usr/local/soft/oracel/netca.rsp" 完成对命令行参数进行语法分析. Oracle Net Services 配置: Error: nul

Lc.exe已退出 代码为-1问题解决方法

对于用vs作为开发工具的同学来说,可能常常会碰到“Lc.exe已退出 代码为-1”的问题,造成这个结果的一般是因为加入了第三方的插件程序造成的,今天一一讲解如何解决. 工具/原料 vs各版本开发工具 方法/步骤 1 在多人进行程序开发的过程中,可能由于版本问题,会导致“Lc.exe已退出 代码为-1”问题的出现,如下图: END 解决方法1:(针对项目中有licenses.licx文件) 1 查看加载的程序项目,找到Properties文件夹licenses.licx文件,然后右键选择删除就可以