gpt4 book ai didi

c# - 进行大量 PropertyUpdates 时避免 UI 锁定

转载 作者:行者123 更新时间:2023-11-30 16:08:30 30 4
gpt4 key购买 nike

当您同时对 UI 进行大量更新时,我正在尝试发现避免 UI-Lockups 的最佳方法。

基本前提是,在启动时,我的工具会在后台工作程序中运行 perforce FSTAT。这会生成一个非常大的文件列表及其信息。完成后,我会在其 RunWorkerCompleted 函数中将此信息传播到 TreeView 内的 UI。

然而,这涉及大量属性更新!取决于它传播到的文件数量。它可以是 5000 多个文件。这会完全锁定 UI 大约 3-5 秒。

我想知道我是否可以异步更新 UI,就像我说的那样,一次传播 10-20 个文件并且仍然让 UI 线程继续更新以使其仍然响应。

谢谢。

最佳答案

如果您使用属性绑定(bind)更新 TreeView 内部的信息,您可以将 Binding.IsAsync 标志设置为 true。如果您不使用绑定(bind)更新值,那么这可能是需要研究的问题。

Binding.IsAsync Property

另一种选择是更新所有属性,但不调用属性的 PropertyChanged 事件(假设您正在使用 INotifyPropertyChanged 更新绑定(bind))直到所有数据都已更改,然后调用 PropertyChanged 事件您在任务上的每个属性,它仍然是异步的,但即使有 5000 多个绑定(bind)更新,它也不应该花费 3-5 秒。

关于c# - 进行大量 PropertyUpdates 时避免 UI 锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29080167/

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