C# 强制退出程序
来源:互联网 发布:股票记录软件 编辑:程序博客网 时间:2024/05/06 10:21
转自:http://hi.baidu.com/%EE%A3%BB%AA/blog/item/b21fcaf34addea58352acce6.html
1.强制退出WinForm程序之Application.Exit和Environment.Eixt
MSDN和从网上查资料才得知,Dispose()方法,虽然能释放当前窗体的资源,却不能强制结束循环,
要想强制突出当前程序要用:System.Environment.Exit(int exitcode)方法;该方法:终止当前进程并为基础操作系统提供指定的退出代码。
如下则问题解决:
private void frmFileDisposal_Closed(object sender, System.EventArgs e)
{
System.Environment.Exit(System.Environment.ExitCode);
this.Dispose();
this.Close();
}
或者把它放到事件里:
while (MessageBox.Show("退出当前窗体?", "", MessageBoxButtons.YesNo) == DialogResult.No)
{
for(int j=1; j<=i; j++)
{
listBox1.Items.Add(j);
}
}
System.Environment.Exit(System.Environment.ExitCode);
2. 还有一种方法: System.Threading.Thread.CurrentThread.Abort();
或者 Process.GetCurrentProcess().Kill()
或者 Application.ExitThread();
或者 Application.ExitThread()
不过以上方法,都是强制直接退出了整个程序,不只是关闭子窗体。可能还会引发某些问题,
我感觉最好方法的就是,在子窗体的Closing事件中,写循环退出条件,这样就可以避免某些未知的错误,而且可以只关闭子窗体,并释放子窗体占用的资源.
3. Application.Exit(); 方法停止在所有线程上运行的所有消息循环,并关闭应用程序的所有窗口
Application.Exit 是一种强行退出方式,就像 Win32 的 PostQuitMessage()。它意味着放弃所有消息泵,展开调用堆栈,并将执行返回给系统。
在 Windows(Win32 或 .NET)中关闭应用程序的正确方式是关闭它的主应用程序窗口(例如 Form.Close)。主消息泵结束后依然存在的任何窗口都需要手动关闭。在应用程序退出之前通过调用 Form.Close 或 Form.Dispose 来关闭窗口是清除窗口的良好做法,但这需要您有意识地去做。我们需要记住,.NET Framework 的 OnClosing() 是 Win32 的托管版本的 WM_CLOSE,而非 WM_DESTROY。
另外,如果您使用 form.Close(),通过处理 OnClosing 或 OnClosed 事件,就可以让您的应用程序清理内容、关闭文件等。如果您通过 Application.Exit 强行退出应用程序,就无法调用这些事件。
- C# 强制退出程序
- C# 强制退出程序
- C# 强制退出程序
- C# 强制退出程序
- C#多线程强制退出程序
- C#多线程强制退出程序
- C#多线程强制退出程序
- C#多线程强制退出程序
- C#多线程强制退出程序
- C#多线程强制退出程序
- C# 中 强制退出WinForm程序
- c#如何强制退出
- iOS代码强制退出程序
- C# 强制退出WinForm程序之Application.Exit和Environment.Eixt(转载)
- C# 强制退出WinForm程序之Application.Exit和Environment.Eixt
- C#强制退出WinForm程序之Application.Exit和Environment.Eixt
- 关于c#中强制退出程序运行的两个方法比较
- C# 强制退出WinForm程序之Application.Exit和Environment.Eixt
- 动态加载js文件
- 是该记录一些东西了
- Abstract Factory
- Google App Engine的安装
- 基于ICMP的一个ping程序
- C# 强制退出程序
- [zz] armgcc编译器下载安装
- Vss 2005配置
- Struts Hibernate Spring SSH集成碰到的问题
- 【PKU 3321】Apple Tree(树状数组)
- 向Access中插入记录 报错误: Unhandled exception Type=Segmentation error vmState=0x0005ff05 J9Generic_Signal_Number=00000004 ExceptionCode=
- AGDLP
- Apache-2.2.8+mod_encoding解决URL中文编码问题-2008.1.8
- ubuntu在机房上网