我有一个关于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需要如此长的时间?
非常感谢任何想法!