0

У меня есть приложение Winforms с основной формой, в которой многострочное текстовое поле обновляется в течение длительного времени.Запуск приложения winforms из отладчика отключает переключение alt-tab в форму

Я хотел бы иметь возможность использовать средство ALT-TAB для Windows, чтобы отключиться от среды разработки Visual Studio 2012, чтобы посмотреть, как форма обновляется по мере запуска приложения.

Есть ли опция, которая контролирует это? Если у меня есть другие приложения, такие как «Блокнот», я могу переключаться с IDE, но переход таким образом к запущенному приложению Winforms кажется отключенным.

В прошлый раз, когда я отлаживал такое приложение, я помню, что этот вид переключения работал, но иногда было небольшое отставание в рендеринге экрана.

Приложение winforms не является многопоточным.

Любые идеи?

ответ

2

Приложение winforms не является многопоточным.

Это означает, что вы делаете всю свою длительную обработку в потоке пользовательского интерфейса. И это, в свою очередь, означает, что во время этой обработки ваше приложение игнорирует все сообщения, которые Windows отправляет, например, «эй, кто-то просто Alt + Tabbed для вас, так что приведите себя на передний план».

Вам необходимо либо покрасить свой код частыми звонками в Application.DoEvents (не рекомендуется, но может работать, если вы не собираетесь поддерживать это приложение в течение длительного времени), или переместите свою длинную логику в фоновый поток, чтобы ваш поток пользовательского интерфейса может реагировать на сообщения.

+0

Спасибо, Джо. Хорошее объяснение. –