Application crashes can be annoying, and Windows crashes are often disastrous, but at least both are usually accompanied by some form of error message.
And entering the relevant text at your favourite search engine will often provide useful clues on the cause of your problems, and how to ensure they don't happen again.
When a program just locks up, though, it's a different story. You'll wait, and wait, and wait, hoping that maybe the application will come back to life. Then finally you lose patience, and close it down from Task Manager, perhaps losing valuable data.
But this time there's no error message, no alert, no clue as to what the problem might be - unless you get a little help from some handy troubleshooting tools.
1. Resource Monitor
If you're running Windows 7, then a little-known diagnostic feature could help you not only figure out why your program has locked up, but also get it working again. And it's surprisingly easy to use.
The next time a program appears to hang, click Start, type RESMON and click the RESMON.EXE link to launch the Windows 7 Resource Monitor.
Click the CPU tab and scroll down the list of running processes until you find the one that's frozen. If it really has locked up, then this should be highlighted in red. (If you don't see anything, then maybe it's just busy; switch back to the program and give it another few minutes.)
Once you've found the highlighted process, right-click it and select Analyze Wait Chain. If Resource Monitor tells you that the process is "running normally" then it won't be able to do anything to fix the hang. But if it's showing you that your process is waiting for another, then it'll provide more details - and that means there's still hope.
UNLOCKED: Resource Monitor often shows you why your program has locked up - and can even get it running again
Cloudmark's DesktopOne, for instance, is an excellent spam filter, but in its early beta days was prone to locking up other programs. And when we used Resource Monitor, we'd often find that a program was waiting for the DesktopOne executable, CDSWIN.EXE.
So we would save any unsaved work in other applications (just for safety), check the CDSWIN.EXE checkbox in the Analyze Wait dialog, click End Process, and that was usually it - our frozen program would come back to life, and we could continue using it as before.
If you find something similarly non-critical that appears to be blocking an application of yours, then you can do much the same thing: close down the offending process and your app may also start working again.
However, you need to be cautious. If you forcibly close a Windows component or other system-critical application then you might crash your PC. Even if it's nothing important, there are no guarantees that your locked-up program will return to normal (it may stay frozen, it might even crash).
And if a process is waiting for another instance of itself (FIREFOX.EXE waiting for FIREFOX.EXE, say), then you probably won't be able to use this trick at all: closing one may also shut down the other, so you'll lose both.
If Resource Monitor doesn't work for you, then, you'll want to try something else. And fortunately there are a couple of worthwhile alternatives.
WhatIsHang is a tiny portable tool that can provide important clues as to why a program might be locking up.
It's more complicated than Resource Monitor, but then it also provides more information, and the tool works on any version of Windows from 2000 upwards (although it only detects hangs in 32-bit applications).