Используйте sosex от Стива Джонсона.У него есть команда для обнаружения взаимоблокировок для вас.
Загрузите расширение по ссылке и загрузите его, например,
.load D:\sosex_32\sosex.dll
, затем выполните
!dlk
пример выходных данных (взято с сайта Стива)
0: 010>! dlk Обнаружена взаимоблокировка: поток CLR 4 содержит блок синхронизации 00000000024c6970 OBJ: 000000007fff0f80 [System.String] STRVAL = SYNC1 ожидает блок синхронизации 00000000024c6928 OBJ: 000000007ffffa.String] STRVAL = SYNC2 CLR-поток 5 содержит блок синхронизации 00000000024c6928 OBJ: 000000007fff0fa8 [System.String] STRVAL = SYNC2 ожидает блок синхронизации 00000000024c6970 OBJ: 000000007fff0f80 [System.String] STRVAL = SYNC1 консольной консоли APC.() + 0xa4 (IL) [C: \ dev \ ConsoleTestApp \ ConsoleTestApp.cs, строка 195] CLR-поток 5 ожидает в ConsoleTestApp.ConsoleTestApp.MonitorDeadlockThreadProc () + 0xa4 (IL) [C: \ dev \ ConsoleTestApp \ ConsoleTestApp \ ConsoleTestApp.cs, строка 195]
См. также ссылка для ознакомления