从调试器运行winforms app会禁用alt-tab切换到表单

时间:2015-04-06 22:42:58

标签: vb.net multithreading winforms visual-studio-debugging alt-tab

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

我希望能够使用Windows的ALT-TAB工具切换远离Visual Studio 2012 IDE,以便在应用运行时观看正在更新的表单。

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

上次我调试了这样的应用程序时,我记得这种切换工作有效,但有时候屏幕渲染有一个滞后。

winforms应用程序不是多线程的。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

  

winforms应用程序不是多线程的。

这意味着您在UI线程上进行了所有冗长的处理。反过来,这意味着在该处理期间,您的应用程序忽略了Windows发送它的所有消息,例如“嘿,有人只是Alt + Tabbed给你,所以把自己带到前面”消息。

您需要经常调用代码Application.DoEvents(不推荐,但如果您不打算长期维护此应用程序,则可以正常工作),或者将长期运行的逻辑转移到后台线程,以便您的UI线程可以保持对消息的响应。