我有一个带有主窗体的Winforms应用程序,在长时间运行的过程中会更新多行文本框。
我希望能够使用Windows的ALT-TAB工具切换远离Visual Studio 2012 IDE,以便在应用运行时观看正在更新的表单。
是否有一些选项可以控制这个?如果我有其他运行的应用程序,如记事本,我可以切换远离IDE,但以这种方式导航到正在运行的Winforms应用程序似乎被禁用。
上次我调试了这样的应用程序时,我记得这种切换工作有效,但有时候屏幕渲染有一个滞后。
winforms应用程序不是多线程的。
有什么想法吗?
答案 0 :(得分:2)
winforms应用程序不是多线程的。
这意味着您在UI线程上进行了所有冗长的处理。反过来,这意味着在该处理期间,您的应用程序忽略了Windows发送它的所有消息,例如“嘿,有人只是Alt + Tabbed给你,所以把自己带到前面”消息。
您需要经常调用代码Application.DoEvents
(不推荐,但如果您不打算长期维护此应用程序,则可以正常工作),或者将长期运行的逻辑转移到后台线程,以便您的UI线程可以保持对消息的响应。