Как отладить приложение WPF NET для обнаружения блокировок и т. Д. - PullRequest
0 голосов
/ 08 мая 2018

У меня есть настольное приложение WPF MVVM в NET 3.5. Это приложение имеет комбинированный список в главном окне. Этот comobobx связан со свойством модели представления. Когда приложение запускается впервые, этот комбинированный список заполняется. Когда элемент выбирается из выпадающего списка, в сетку данных wpf загружаются данные. Затем пользователь может выполнить некоторые операции над данными, загруженными в сетку данных. Чтобы выполнить определенную операцию, пользователь выбирает строку из таблицы данных и затем нажимает кнопку wpf, которая выполняет нужную операцию. Эта операция выполняется с фоновым рабочим, и когда она завершается, обновляется поле со списком. Он обновляется, поскольку каждый элемент в поле со списком имеет связанный счетчик, который необходимо пересчитать, а затем обновить в выпадающем списке после завершения операции.

Моя проблема заключается в следующем: Как только операция завершается, если пользователь нажимает на выпадающий список, он останавливается и не отвечает в течение пары секунд, примерно 10 секунд, после чего секунд откликается. Это происходит только на компьютере в производственной среде. На остальных компьютерах такого не бывает. Я не могу воспроизвести это.

Так есть ли отладчик .NET, который я могу использовать для обнаружения взаимоблокировок, ненормального поведения потоков, блокировок и т. Д.?

Я пытаюсь использовать MDbg.exe, но из консоли приглашения MDbg, когда я пытаюсь подключиться к процессу (приложение работает), приложение зависает ...

В консоли приглашения MDbg для подключения к процессу я использую следующую команду:

a PID

Кроме того, из консоли приглашения MDbg я пытаюсь загрузить SOS.dll, используя приведенную ниже команду, но она говорит, что расширение не найдено:

load sos clr

Я не уверен, правильно ли я использую MDbg, я не использовал его раньше.

1 Ответ

0 голосов
/ 08 мая 2018

во время отладки нажмите кнопку «Пауза» на панели инструментов, и она сломается в текущей строке.

Это должно дать вам представление о том, что вызывает проблему

...