为什么Windows 设置只能开一个窗口 而控制面板可以同时开多个窗口?
因为Windows “设置”没有“确定”按钮。
控制面板程序都有一个“确定”按钮,你的配置在没点确定之前是不生效的。但是“设置”是没有“确定”按钮的,你开关点了就是点了:


这种设计下,如果有多个窗口,那么一个窗口的开关如果发生了变化,就需要通知另外其它所有窗口。或者其它所有窗口需要实时监控所有的配置项变化,这对于软件设计来说太过于麻烦了。所以用单实例就好了。
无“确定”的设计是来自于移动端的,很多移动端的设置就没有确定一说,比如手机上的WiFi开关。
但是我觉得无“确定”设计在PC上相当的糟糕,一旦某个设置项目依赖于外部的东西,那么每次激活窗口都可能需要请求一下外部的配置项,如果外部的东西是某种响应比较慢的外设,那么设置窗口就会卡死。
举个例子:我家里电脑上接着音箱,还接着USB耳机,如果是周末在家休息,那么我倾向于用音箱,如果是遇到需要工作上沟通的事情,我会用USB耳机,根据需要在“设置”里切换默认音频设备,但是如果设置界面一直忘记关了,等个十几分钟甚至几个小时以后,再修改默认音频设备,设置窗口直接卡死,因为它要轮询一遍音频设备列表,这个动作会比较卡顿。类似的情况还有网络的一些相关的东西,本质上都是需要依赖一个比较慢的外部请求。
手机上很少有这种情况,是因为手机几乎不接外设,手机的设置项目大多数都只管手机自带的东西。
最后,补充一点,Windows的设置窗口实际是支持配置同步功能的,比如我前面说的默认音频设备的设置。微软一直在试图努力的解决设置窗口信息的不同步问题,但是不管是轮询还是消息模式,带来的通信延迟的代价都是相当大的,尤其是慢速的设备。所以,微软通过各种方式构造了一个新的设置框架和同步协议(至少看上去界面是很好看的),但是又引入了新的问题(配置延迟导致设置窗口卡死)。为了解决一个旧问题,又引入了新问题,这应该算是刷KPI的一种方式吧。