我对 WPF - C# 5.0、.NET4.5 中的 Window.IsEnabled 属性有疑问。
我有以下场景(简化):
1) 带按钮的表单
2)用户触发长时间计算操作(从数据库中获取一些数据)
3) 用户能够与新数据交互
我已经实现了以下方式:
1)点击处理程序禁用窗口(用于用户交互)并异步触发操作(这可以同步进行,没关系)
2)当异步操作完成时,窗口被启用(通过myWindowInstance.IsEnabled = true)
我的问题是:
myWindowInstance.IsEnabled = true 大约需要 20 秒。我必须注意窗口中有一个 dataGridView 用于获取数据。但是,如果不禁用和重新启用胜利,这一切都需要大约 1 秒。另一个有趣的点是,当我连接到小型本地数据库时,win.IsEnabled 设置器很快就完成了。与此相反,如果我使用远程大型数据库,如前所述,此操作需要 20 秒。在这两种情况下,我只获取 100 行。
有谁知道为什么简单的 setter 需要这么多时间?
非常感谢您的任何想法!