I haven't yet had a chance to play with these yet, but Vista includes new APIs for determining why a thread is blocked. That is, you can learn that thread 'A' is blocked on object 'X' which is owned by thread 'B'. Thread 'B' in turn in blocked on object
Read More...