0

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

我希望能够使用 Windows 的 ALT-TAB 工具从 Visual Studio 2012 IDE 切换,以观察应用程序运行时更新的表单。

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

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

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

有任何想法吗?

4

1 回答 1

2

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

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

你要么需要频繁调用你的代码Application.DoEvents(不推荐,但如果你不打算长期维护这个应用程序可以工作),或者将你的长时间运行的逻辑移到后台线程中,这样你的 UI 线程就可以保留响应消息。

于 2015-04-06T23:35:26.793 回答