We’ve all been there. Diligently working away, and then the program we’re using just stops. You get the ambiguous ‘Program Not Responding’ message, the Window goes grey, and everything hangs.
If you’re anything like me, this is probably your first impulse:
However, as I’ll explain, the proper reaction should be something more like this:
First things first: your program may not have crashed. When a program is running, Windows periodically communicates with it. These messages allow the program to interact with the user (moving your mouse, keyboard strokes, scrolling, etc.). Basically, all this information is sent from you to Windows and then to the program, so the program can respond and interact with the user: you move the mouse, and the cursor moves around the screen.
However, when a program is busy processing large amounts of data, it often times doesn’t have a chance to respond immediately to these messages. Sort of like when I’m watching football and my girlfriend yells something at me from another room. I’m “Not Responding”; she thinks I’m ignoring her. I’m just processing a lot of information. Right?
What Windows does in these cases is internally track of how much time passes since a program has last responded to a message sent by the user. Once passed a certain point of time, arbitrarily set at 5 seconds it seems, Windows will then flag the program as ‘Not Responding’.
Starting with Windows XP, once a program has stopped responding, a snapshot of the existing program is taken at that exact moment in time and a ‘ghost window’ is created with that snapshot. The ghost window then replaces the original program, which gets hidden away but continues processing in the background. At this point, users are left with three options: move, resize, or close the program. Unfortunately any visual updates to the program won’t be transferred to the ghost window. And any messages the user might send to the program, such as right-clicks, won’t be received by the program.*
No matter how often one might furiously click away, you won’t get a response. Because that program, hidden behind that ghost window, it can’t hear you.
This behaviour can be seen in nearly all programs running in Windows. As an example, as someone who never archives his Outlook Inbox, I can count on getting an ‘Outlook Not Responding’ message at least three times a day. Other instances that may ring a bell with you: loading up a large file in Excel, or accessing a large file over a slow network connection.
So now that we have a better grasp of what that ‘Not Responding’ message actually means, what can we do about it?
Unfortunately, we have to wait. (I think I can sum up your reaction to this bit of earth-shattering news here.)
Clicking away with your mouse, while perhaps satisfying in an impossible-to-explain way, does nothing to speed things up or alleviate the problem. And closing the program, while certainly an option, puts you in the position of having to restart the program and get back to where you were before the ghost window showed up. Basically what’s happening is that Windows has noticed that the program you’re using isn’t listening to you anymore because it’s… busy.
So as unsatisfying as it may sound, the only real approach when this happens is to wait. Give Windows the chance to finish doing whatever it’s doing, and once it catches up, the ‘Not Responding’ message will go away, and you can get back to work. Hooray!
Stephen Werny is the Data Acquisition Coordinator at geoLOGIC Systems, and a big fan of otters doing funny human-like things.
*Thanks to Johnson Chau for the technical information.