The program I'm currently working on occasionally hangs with an AppHangB1 problem event. I have traced it to a specific series of actions, but it seems to be a type of heisenbug, as whenever I step through the code, it doesn't manifest itself. And once the program hangs, I can't pause the program to see where it is hung in Visual Studio. There are many things going on in this application (unmanaged interop, multi-threading, etc.), so it could be any number of things that are wrong in my particular application.
I am not looking for anyone to solve my problem for me, I'm just wondering what types of things could cause this type of hang? I found a couple hits on Google, but nothing that helped. Any debugging tricks for .NET applications that could help pinpoint the problem would also help.