Я работаю над приложением WPF, которое иногда демонстрирует странные проблемы и, кажется, зависает в пользовательском интерфейсе. Это непоследовательно, это происходит на разных страницах, но это происходит достаточно часто, что является большой проблемой. Я должен отметить, что это не настоящее зависание, как описано ниже.
Сначала я подумал, что проблема в анимациях некоторых кнопок, так как они используются на большинстве страниц, но после их удаления зависания все равно случаются, хотя, казалось бы, немного реже. Я пытался взломать отладчик, когда происходит зависание; однако никогда не бывает кода для просмотра. Мой код не работает. Еще заметил, что "зависание" не полное. У меня есть код, который позволяет мне перетаскивать форму (у нее нет границ или заголовка), которая продолжает работать. У меня также есть моя кнопка закрытия, которая работает, когда я нажимаю на нее. Кажется, что нажатие на кнопки действительно работает, когда мой код работает, но пользовательский интерфейс просто никогда не обновляется, чтобы показать новую страницу.
Я ищу любые советы, инструменты или методы, чтобы отследить эту странную проблему, поэтому, если у вас есть какие-либо мысли, я буду очень признателен.
РЕДАКТИРОВАТЬ: Это произошло снова, поэтому на этот раз, когда я попытался взломать отладчик, я выбрал «показать дизассемблирование». Это приводит меня к MS.Win32.UnsafeNativeMethods.GetMessageW. Трассировка стека выглядит следующим образом:
[Managed to Native Transition]
Попробуйте удалить поведение окна без полей и посмотрите, поможет ли это. Кроме того, выполняете ли вы BeginInvoke() или Invoke() какие-либо длительные операции?