黑马程序员技术交流社区

标题: this.close()和Application.Exit()的区别? [打印本页]

作者: 王海舟    时间: 2012-9-12 23:32
标题: this.close()和Application.Exit()的区别?
在winform中,输入this.close()和Application.Exit()都可以退出程序,那它们的区别是什么呢?
作者: iamheima    时间: 2012-9-12 23:38
this.close()是Form的方法,并不是退出程序了,只是你当前只有一个窗体的话就像是关闭了程序一样,和Application.Exit()有本质的区别!
作者: 杨千里    时间: 2012-9-12 23:48
Application.Exit()应用程序退退出
this.Close()当前窗口退出
例如:QQ聊天,你和多个朋友聊天,有多个聊天窗口,
this.Close()相当于关闭当前QQ聊天窗口,可能还有一个或者多个QQ聊天窗口。
Application.Exit()相当于QQ程序退出。
作者: 刘钰    时间: 2012-9-13 09:52
this.Close()是关闭当前form
Application.Exit()是退出整个应用
作者: 廖创发    时间: 2012-9-13 21:11
this.close()方法 关闭窗体。
如果该窗体是应用程序的主启动窗体,则調用窗体的Close()方法,跟調用Application.Exit的效果差不多。
如果该窗体非主启动窗体,则只是关闭该窗体而不关闭整个应用程序。
Application.Exit()就是退出程序。
作者: mjbtdym    时间: 2012-9-14 00:38
Application.Exit()应用程序退退出  
通知所有消息泵必须终止,并且在处理了消息以后关闭所有应用程序窗口
this.Close()当前窗口退出
如果该窗体是应用程序的主启动窗体,则調用窗体的Close()方法,跟調用Application.Exit的效果差不多。
如果该窗体非主启动窗体,则只是关闭该窗体而不关闭整个应用程序。

如果是多线程应用程序,要想关闭整个应用程序,除了調用Application.Exit()方法或者主启动窗体的Close()之外,还需要显示的調用终止线程的代码。否则窗体虽然关闭了,看似应用程序退出了,其实线程依然还驻留在内存中工作。打开任务管理器依然可以看到
作者: 陈育梅    时间: 2012-9-14 13:31
Application.Exit()的意思是退出全部的程序。this.close()关闭当前正在运行的窗口,主要在多窗体的程序中




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2