Windows 7于2009年问世,在Windows Vista令人恼火的失败后将微软重新带回成功轨道。但Windows 7也并非完美无缺,这个奇特的故事就是明证。
当时部分用户遭遇了一个棘手问题:若将纯色图片设为壁纸,他们的Windows 7电脑总是需要30秒才能完成系统启动,从欢迎界面切换到桌面。微软资深工程师雷蒙德·陈(Raymond Chen)在近期博客中揭示了具体原因——一个简单的编程错误导致系统启动时间延长。
登录后,Windows 7会逐步构建桌面元素:任务栏、桌面窗口、应用程序图标乃至背景图片。系统会等待所有组件加载完成并收到反馈,若30秒内未收到任何反馈则强制切换至桌面界面。
问题根源在于:壁纸加载完成的消息代码被错误地嵌套在壁纸位图代码内部。当用户使用非位图格式的纯色背景时,该系统消息永远无法触发。登录系统因此徒劳等待壁纸加载完成的信号,直至30秒超时机制启动。
该故障同样会出现在启用“隐藏桌面图标”组策略的情况下。由于这些策略是在主代码编写完成后通过If语句追加的,初期Windows 7无法识别这种情况,导致加载时间延长。
微软花费数月才确认此问题,最终在2009年11月通过更新补丁修复。这个编程过程中的小插曲,如今已成为值得玩味的轶事。