gpt4 book ai didi

WPF - window.IsEnabled setter 持续时间长

转载 作者:行者123 更新时间:2023-12-05 06:46:24 38 4
gpt4 key购买 nike

我对 WPF 中的 Window.IsEnabled 属性有疑问 - C# 5.0、.NET4.5。

我有以下场景(简化):

1) 带按钮的表单

2) 用户触发一个长计算操作(从数据库中获取一些数据)

3) 用户能够与新数据进行交互

我已经实现了以下方式:

1) 单击处理程序禁用窗口(用于用户交互)并异步触发操作(这可以同步进行,没关系)

2) 异步操作完成后,窗口启用(通过myWindowInstance.IsEnabled = true)

我的问题是:

myWindowInstance.IsEnabled = true 大约需要 20 秒。我必须注意在获取数据的窗口中有一个 dataGridView。然而,如果不禁用和重新启用胜利,这一切都需要大约 1 秒。另一个有趣的地方是,当我连接到小型本地数据库时,win.IsEnabled setter 会很快完成。与此相反,如果我使用远程巨大的数据库,如前所述,此操作需要 20 秒。在这两种情况下,我都只获取了 100 行。

有人知道为什么简单的 setter 会花费如此多的时间吗?

非常感谢任何想法!

最佳答案

除了禁用窗口之外,您还可以做的一件事是启用/禁用插入到其他控件顶部的半透明矩形,用户将无法单击任何内容。完成后,禁用它或将其 Visibility 属性设置为 Hidden。

<Window>
<Grid>
<TextBox Text="Hello" HorizontalAlignment="Left" VerticalAlignment="Top" ></TextBox>
<Rectangle Fill="DarkGray" Opacity="0.5" />
</Grid>
</Window>

现在考虑到您的问题需要花费大量时间,您应该使用 Visual Studio 中的“分析”菜单分析您的应用程序。

关于WPF - window.IsEnabled setter 持续时间长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15856824/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com