本文是对窗口卡死(假死)的应用问题进行一系列的探讨,旨在帮助对Windows应用程序不熟悉的新手理解这个问题。我将逐步的深入开发的过程,让你有一个循序渐进的思路。我这里就用MFC程序作为示例,当然win32程序或者C#等都可以实现,这里主要是做一个参考。一般来说,我们点击了一个按钮,就触发了一个动作,这个动作就可以执行一系列的功能。但是有的功能可能会耗时很久,比如下载文件,或者读写文件等。此时窗口界面就无法再响应我们的操作了,然后就出现了窗口提示“未响应”。实际上窗口程序在执行功能,并没有死掉,所以也叫作假死。我们一般也将这样的情况叫做卡死。发生未响应的假死状态,是因为当一个窗口事件执行的太久的时候,你后续的操作来不及处理,所以就无法响应了。这样的现象会导致体验很差。但是多数时候,我们都只是执行一个简单的动作,3秒内都可以完成,很多时候也就懒得进行处理了,耐心一点就是了。但是如果超过了3秒,很多用户就不耐烦了,再操作界面,程序就未响应,然后用户以为程序死掉了,然后就强制关闭了窗口程序,然后就会骂软件做的很烂。如果确实只没有时间去改善,怎么办呢?要么在界面上显示一行文字说明,请等待。但是事先显示在界面上不美观,不显示用户不知道。怎么办呢?而当窗口在执行一系列操作的时候,无法更新界面了,所以设置界面上的控件也是无法更新提示文字了。怎么办呢?下面就这个问题的界面,按照解决问题的思路,一个个给出解决办法。首先是让卡死(假死)的窗口能够更新提示,最好是能够动态的变化的提示。然后最好是不要卡死。如果不卡死,也就是说,尽管要执行的操作还没有完成,也要让界面可以自由的操作。不过