Application.DoEvents()能否成为一个可行的解决方案,在主窗口线程上处理密集的表单?
发布于 2014-04-12 04:22:41
Application.DoEvents()能否成为一个可行的解决方案,在主窗口线程上集中处理表单?
永远都不可能。您可以禁用UI以防止重新进入,但这将是一个非常不友好的步骤,因为用户将无法取消操作或关闭应用程序。以下是对其含义的一个很好的解释:“保持您的UI响应性和Application.DoEvents的危险”。
这里您可以找到一个示例,说明如何将CPU密集型工作卸载到池线程,并提供进度更新和取消支持。
在处理过程中,可能会出现必须停留在同一个线程上的情况。例如,您可能正在为编辑器控件编写一些实时语法高亮或拼写检查逻辑。
https://stackoverflow.com/questions/23025970
复制相似问题