c# - 在模式进度对话框启动时调用 "Application.DoEvents"是否可以?

标签 c# winforms modal-dialog wndproc message-pump

我有一个无法异步运行的冗长过程,所以就像复制文件时的资源管理器一样,我有一个进度对话框。我以模态方式显示对话框,然后执行操作(我们将其称为复制文件以保持抽象)、更新进度对话框,并使用 Application.DoEvents() 发送消息以保持应用程序主框架绘制和响应。

由于对话框是模态的,用户除了观看或取消外不能做任何事情。换句话说,他们无法选择菜单项或单击任何按钮。

我一直认为 Application.DoEvents 极其邪恶,因为您可以重新输入您不打算重新输入的代码。但在这种情况下,由于进度对话框是模态的,我看不出这是一个糟糕或危险的解决方案的原因。

我是不是忽略了某些东西,或者使用 Application.DoEvents 发送消息对于模式对话框来说是合法的吗?

最佳答案

我没有发现这种有限使用 DoEvents 有什么特别的问题。我们在非常有限的情况下成功地使用了它,比如后台处理不是一种选择。

关于c# - 在模式进度对话框启动时调用 "Application.DoEvents"是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461212/

相关文章:

c# - ASP.NET 完全模块化设计——怎么样?

c# - 有没有办法判断用户指定的目录是否是启用 UAC 的 Windows 7/Vista 中的 protected 目录(并且不以管理员身份运行)

c# - 重建用户控件时,用户控件自定义属性丢失状态

c# - C#WinForms-OpenFileDialog MultiSelect : “Index was outside the bounds of the array.” 上的错误

c# - 单元测试用例调试时如何读取Web.Config文件?

c# - 使用 Moq 使用内部构造函数模拟类型

c# - 在 C# 中是否可能只需要将两个参数之一传递给方法?

jquery - Bootstrap 模态点击时显示空白屏幕

c# - 将数据从一个表单传递到另一个表单

css - Bootstrap Pop-up Modal 未显示。相反,我得到黑屏