我正在处理文件计数...当我在后台扫描目录时,我必须通过TreeView
处理程序选择与ProgressChanged
中的目录名具有相同名称的相应节点。
Treeview已经填充了具有指定根路径的所有子目录。
我的ProgressChanged
事件将每15毫秒被触发一次..(所以快速不是这样)。
所以,当我在那个处理程序中更新我的treeview时,我的窗口是Freezed,而且速度很慢......甚至没有响应......
问题:
如何在快速运行的ProgressChanged
处理程序中更新UI ..
代码
var nodes = tv.FlattenTree()
.Where(n => n.Text == new FileInfo(CurrentFilePath).Directory.Parent.Name)
.ToList();
通过上面的代码,我选择了Node。
if (nodes.Count() > 0)
{
nodes[0].ForeColor = Color.Blue;
nodes[0].EnsureVisible();
}
通过上面的代码我正在更新treeview ...
答案 0 :(得分:1)
听起来这个任务正在以令人难以置信的速度进行更新,并且更新UI非常昂贵。你为什么不只更新每十分之一?您还可以在填充TreeView时禁用绘制 - 在UI处于活动状态时添加节点onmass会损害性能。