我正在编写一个简单的数据 UI,使用标准 .Net 数据绑定(bind)到 SQL Server 中的类型化数据集。
我有一个重新加载按钮,它在所有 DataAdapter 上调用 Fill
以从数据库中获取新数据(以防其他用户更改数据)。
这需要一些时间,在此期间 UI 会被卡住。它必须在 UI 线程上运行,否则数据绑定(bind)事件处理程序会抛出跨线程异常。
我想在 UI 线程连接到数据库时在后台线程上显示模式“请稍候”对话框(以便它可以动画化)。
如何在非 UI 线程上显示模态对话框?
编辑:我知道最佳做法是在后台运行操作,但由于数据绑定(bind)事件,我不能这样做。
最佳答案
你应该反其道而行之。在后台线程上运行长时间运行的进程,让 UI 线程自由响应用户操作。
如果您想在处理过程中阻止任何用户操作,您有多种选择,包括模态对话框。后台线程完成处理后,您可以将结果通知主线程
关于c# - 在非 UI 线程上运行模态对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1697661/