我有一个无法异步运行的冗长过程,所以就像复制文件时的资源管理器一样,我有一个进度对话框。我以模态方式显示对话框,然后执行操作(我们将其称为复制文件以保持抽象)、更新进度对话框,并使用 Application.DoEvents() 发送消息以保持应用程序主框架绘制和响应。
由于对话框是模态的,用户除了观看或取消外不能做任何事情。换句话说,他们无法选择菜单项或单击任何按钮。
我一直认为 Application.DoEvents 极其邪恶,因为您可以重新输入您不打算重新输入的代码。但在这种情况下,由于进度对话框是模态的,我看不出这是一个糟糕或危险的解决方案的原因。
我是不是忽略了某些东西,或者使用 Application.DoEvents 发送消息对于模式对话框来说是合法的吗?
最佳答案
我没有发现这种有限使用 DoEvents 有什么特别的问题。我们在非常有限的情况下成功地使用了它,比如后台处理不是一种选择。
关于c# - 在模式进度对话框启动时调用 "Application.DoEvents"是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461212/