首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Application.DoEvents In a WinForm

Application.DoEvents In a WinForm
EN

Stack Overflow用户
提问于 2014-04-12 04:03:11
回答 1查看 562关注 0票数 3

Application.DoEvents()能否成为一个可行的解决方案,在主窗口线程上处理密集的表单?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-12 04:22:41

Application.DoEvents()能否成为一个可行的解决方案,在主窗口线程上集中处理表单?

永远都不可能。您可以禁用UI以防止重新进入,但这将是一个非常不友好的步骤,因为用户将无法取消操作或关闭应用程序。以下是对其含义的一个很好的解释:“保持您的UI响应性和Application.DoEvents的危险”

这里您可以找到一个示例,说明如何将CPU密集型工作卸载到池线程,并提供进度更新和取消支持。

在处理过程中,可能会出现必须停留在同一个线程上的情况。例如,您可能正在为编辑器控件编写一些实时语法高亮或拼写检查逻辑。

对于这种情况,可以使用计时器事件、空闲事件和/或async/await构建逻辑。那么就有关系了。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23025970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档