在 Windows 中退出程序有两种常用方法:
- 单击
File
菜单栏中的 ,然后Exit
从出现的菜单中选择 - 点击
X
右上角的按钮
为了回答这个问题,假设您正在处理程序打开的最后一个窗口。还假设您正在处理的不是即使没有活动窗口也会偷偷地作为后台进程保持打开状态的程序。
这些方法是否等效?如果不等效,它们有什么区别?例如,其中一种方法是否比另一种方法更彻底地清理资源?
答案1
伊格纳西奥回答很好,但我想我会添加一个不太技术性的版本。
File
->Exit
由软件提供(有些软件甚至没有文件菜单或退出选项),软件会按照其想要的方式处理它。
操作系统X
会将 附加到任何标准窗口(操作系统也会提供标准窗口本身)。单击它会向窗口发送一条外部消息,要求其关闭。软件会检查此消息并做出正确响应。
您可能希望大多数软件对这两种类型的请求使用相同的内部程序,但正如所说,这并不能保证,因为这完全取决于软件开发人员的配置。
此外,这两种方法都保证关闭程序 - 考虑在打开已编辑文件的 Excel 中执行此操作,它会询问您是否要保存,但也会为您提供完全取消请求的选项。
答案2
一个将分配给菜单项的命令消息发布到窗口消息队列,另一个将消息发布WM_CLOSE
到窗口消息队列。应用程序对每个消息的反应取决于窗口循环如何处理给定的消息。