前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谁来结束GUI程序-关于任务栏的思考

谁来结束GUI程序-关于任务栏的思考

作者头像
Jean
发布2019-07-30 18:51:46
7610
发布2019-07-30 18:51:46
举报
文章被收录于专栏:Web行业观察

在之前使用Windows XP的时候,都会有这样的经历,即打开一大堆的窗口,在任务栏排的满满的,同样程序的不同程序还可以分组,看似很有条理的样子…

不光Windows,Linux桌面,MacOS竟然也 学 着Windows的样子,也这么做。当然了,我没有扒过GUI的历史,也不敢确认这种携带任务栏的GUI桌面到底是源自何方,不过无所谓,就假设它是微软的原创吧。

一直纳闷,Windows的手机和平板总是看起来别别扭扭的,也不知道哪里出了问题。后来终于找到了这件事和任务栏的关联。


在手机,平板这种屏幕有限,且用户关注单一全屏UI的环境下,根本就没有任务栏存在的必要,推而广之,其实就算在Windows XP上,也不需要有任务栏,那为什么要有任务栏?

我假设任务栏是从微软开始设计出来的。

任务栏是为了暂存GUI程序的窗口的,虽然桌面本身就已经支持了重叠窗口,但是为了让桌面可以更加整洁些,Windows允许将非前台的程序窗口最小化暂存到任务栏,等到它获得焦点的时候,再恢复它到前端。

现在的问题是,为什么要暂存一个GUI窗口,直接结束掉这个程序不行吗?答案看起来很简单,因为有很多的状态需要尚未保存和同步,比如用户可能在记事本上输入了一句不完整的话等等。

但这根本不是问题的满意答案,系统完全可以在结束这个GUI程序时自动保存状态啊,在用户看来,用户关心的是,只要它恢复的时候能保持和它上次离开焦点时的样子一致就可以了,而这些都是可以系统后台完成的啊。

任务栏根本就不需要,在GUI桌面系统,任何时候有且只有一个GUI程序的窗口时焦点窗口,系统可以随时结束任何非焦点的GUI程序,只要当它再次希望获得焦点时,恢复到系统关闭它时的状态即可。

没错,Android等手机,平板操作系统就是这么控制GUI窗口的,对于这些手机操作系统而言,一个小小的屏幕上往往只有一个程序在获取输入和输出,以上的特征更加明显,那么后台的程序便可以随时持久化后被系统结束掉,以节约能耗,当用户再度切换到该程序的时候,系统重新运行该程序就好了,然后反序列化同步状态即可。

Android和Windows的差别在于,到底是谁来结束GUI程序的差别,Android将控制权完全掌握在系统手中,而Windows XP则将控制权交给了用户。

在Windows XP看来,它是把所有的程序的控制权都交给了用户了,并没有对GUI程序加以区别,这是老式UNIX的传统。然而,GUI程序有所不同。

和服务器程序比如Apache需要持续侦听端口提供服务不同,GUI程序的运行几乎完全靠用户的操作来驱动,一旦失去焦点,GUI程序几乎是无事可做的,它就静静地hang在哪里,平白无故地占用着系统的资源,而这是没有必要的。

Windows 8开始有了Metro界面,新的GUI控制改变了Windows XP的做法,它也可以 在保证状态同步的前提下,随时结束非焦点GUI程序 了。然而,毕竟有历史的兼容性包袱,Windows 8做的并不纯粹,它仍然可以用任务栏来暂留GUI程序窗口。怪不得Surface的界面总是那么别扭,估计也有这方面的原因。


浙江温州皮鞋湿,下雨进水不会胖。

(同步测试图片)

---------------------

作者:dog250

来源:CSDN

原文:https://blog.csdn.net/dog250/article/details/95034974

版权声明:本文为博主原创文章,转载请附上博文链接!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebHub 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档