У нас есть приложение, написанное на C # с использованием WPF.У него есть событие активации на основе таймера, которое приводит к некоторому рисованию в контексте DirectX.
Все выглядит хорошо, пока мы не откроем дочернее окно и не переместим его по экрану.Кажется, время совпадает с срабатыванием таймера, но в этот момент весь экран (даже другие приложения), кажется, зависает, и пользователь не может никуда щелкнуть.
Нормальная работа возобновляется с точногота же точка, где она замерзла, если нажать комбинацию клавиш ALT + TAB.В замороженном состоянии не происходит увеличения использования ЦП / памяти, что заставляет меня заподозрить какую-то блокировку основного потока.
Обычно, если мое приложение зависает в середине какой-либо операции, я быиди, нажмите паузу из Visual Studio, и увидеть представление потока в отладчике.Это дает мне достаточное представление о том, какой вызов является виновником.
Но в этом случае, если я нажимаю ALT + TAB, чтобы переключиться на IDE, мое приложение возобновляет нормальное выполнение.Если я помещаю свою среду IDE на дополнительный экран и пытаюсь щелкнуть (без необходимости нажимать ALT + TAB), она также кажется замороженной (как я уже упоминал ранее, весь рабочий стол кажется замороженным до щелчков мыши. Однако движение мышинормальный)
Кто-нибудь сталкивался / знает о подобной проблеме, и о том, как я могу продолжить отладку?