运行 来自调试器的 winforms 应用程序禁用 alt-tab 切换到表单

Running winforms app from debugger disables alt-tab switching to form

我有一个带有主窗体的 Winforms 应用程序,其中一个多行文本框在一个漫长的 运行 过程中被更新。

我希望能够使用 Windows 的 ALT-TAB 功能从 Visual Studio 2012 IDE 切换到应用程序运行时观看正在更新的表单.

是否有一些选项可以控制它?如果我有其他应用程序 运行,例如记事本,我可以从 IDE 切换开,但以这种方式导航到 运行 Winforms 应用程序似乎被禁用。

上次我调试这样的应用程序时,我记得这种切换是有效的,但有时屏幕渲染会有延迟。

winforms 应用不是多线程的。

有什么想法吗?

The winforms app is not multithreaded.

这意味着您正在 UI 线程上进行所有冗长的处理。反过来,这意味着在该处理过程中,您的应用会忽略 Windows 发送的所有消息,例如 "hey, somebody just Alt+Tabbed to you, so bring yourself to the front" 消息。

您要么需要频繁调用 Application.DoEvents(不推荐,但如果您不打算长期维护此应用程序,则可以这样做),或者将您的长期 运行 逻辑到后台线程中,这样您的 UI 线程可以保持对消息的响应。