C#中程序的退出

原创 2012年03月22日 15:03:25

    程序的关闭是很讲究的,处理的不好的话,将软件连续开启和关闭,当数次后在启动软件后程序会崩溃。或者程序退出很慢。细节决定成败,一款好的软件应该从各方面都要做严格地反复地推敲,力争做到无可挑剔。
    有的程序员喜欢在关闭的时候让程序做一些事情,比如保存一些记录什么的,我觉得这样大可不必,因为这些会影响退出的时间,单一职责原则一再强调职责要单一,关闭程序就是关闭程序,不要掺杂其它动作。
    当然仅仅一个关闭也有很多种方式的,比如窗体Close(),Application.Exit(),Application.ExitThread(),Enviroment.Exit(0),以及Process.GetCurrentProcess().Kill()。这些相信大家在退出时都用到过。这些方法都可以退出程序。在我做的最初的一个项目中,由于刚开始没有全面的设计,很多功能都是大家有了新的想法而加上的,因此里面大量用到了线程,有名字的,没名字的,有的可以管理,有的根本没法获取它并管理它。在退出子窗口的时候,一般使用当前Form.Close(),然后将该窗口内的线程获取到,再一一Abort(),但是在退出主程序的时候,this.Close(),就很慢了,因为很多线程还在运行。所以当时就使用杀死进程的方法。
以上那些退出的方法我都使用过。

Close(),关闭主窗体,但是这个关闭,程序会调用Dispose方法,也就是窗体中Designer中的,这样释放当前窗体的资源,但是不能强制结束循环,如果程序中有线程在运行,那么关闭需要很久。
Application.Exit(),这个当有线程时,也要等很久。
Application.ExitThread(),退出当前线程上的消息循环,并关闭该线程的窗口。
Enviroment.Exit(0),该方法强制退出。
Process.GetCurrentProcess().Kill(),当你觉得其它方法退出不太及时或者失灵,那么这个方法就是终极法宝,直接干掉进程,当然也退出了。

    当然了,程序退出时,程序自己要处理很多资源,最安全的方式就是,主窗体Close方法,然后剩下的交给程序做,虽然退出慢,但是这是程序自身的机制去完成的退出绝对安全。可是用户会允许你这么做吗,如果你的软件点击关闭了结果在进程中还生存了很久,或者半天还是放不了资源,那么用户很可能不再使用你的程序。所以本着一切为用户着想的原则,退出还是速度快为好。我常用的方式是。

窗体.Close();
Process.GetCurrentProcess().Kill();

同时使用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

winform窗体关闭程序退出实现

这篇文章主要介绍了C#中WinForm程序退出方法,实例总结了技巧退出WinForm程序窗口的各种常用技巧,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中WinForm程序退出方法技巧...

C# 强制退出程序

1.强制退出WinForm程序之Application.Exit和Environment.Eixt   MSDN和从网上查资料才得知,Dispose()方法,虽然能释放当前窗体的资源,却不...

C#窗口和程序的退出

Application.Exit();                  // 通知所有消息泵必须终止,并且在处理了消息以后关闭所有应用程序窗口。           ...

C#关闭程序询问是否退出

一直是用MFC写程序,突然用C#写,感觉有点吭爹的,啥都不晓得,如题: (1)首先消息响应为:FormClosing (2)在其实现中写的代码如下:他居然就给参数赋值,OX!      ...

c#开发的应用程序做退出程序的代码

转载自:http://www.cnblogs.com/fearless/articles/2364408.html #开发的各种退出应用程序的代码。并详细介绍了各实现方法的不同点。     ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C#实现关闭某个指定程序

C#实现关闭某个指定程序 该文主要是介绍怎么实现C#关闭计算机正在运行的某个程序。 首先,获取电脑正在运行的所有的程序: private void button2_Click(ob...

C#各种结束进程的方法详细介绍

1、Process类的CloseMainWindow, Kill, Close (1)Process类的CloseMainWindow方法 Process.CloseMainWindow是GUI程...
  • tiana0
  • tiana0
  • 2017年01月07日 18:04
  • 1383

C# 强制退出程序

转自:http://hi.baidu.com/%EE%A3%BB%AA/blog/item/b21fcaf34addea58352acce6.html1.强制退出WinForm程序之Applicati...

C#中WinForm程序退出方法技巧总结

C#中WinForm程序退出方法技巧总结 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Applicat...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#中程序的退出
举报原因:
原因补充:

(最多只允许输入30个字)