簡體   English   中英

來自背景工作者的C#Treeview更新

[英]C# Treeview Update from Background Worker

我正在處理文件計數...在后台掃描目錄時,必須通過ProgressChanged處理程序選擇與TreeView的目錄名稱具有相同名稱的相應節點。

Treeview已被所有具有指定根路徑的子目錄填充。

我的ProgressChanged事件將每15毫秒觸發1次。(所以不是快)。

因此,當我在該處理程序中更新樹視圖時,我的窗口被凍結,並且速度如此之慢...甚至沒有響應...

題:

如何在快速運行的ProgressChanged處理程序中更新UI。

var nodes = tv.FlattenTree()
            .Where(n => n.Text == new FileInfo(CurrentFilePath).Directory.Parent.Name)
            .ToList();

通過以上代碼,我正在選擇節點。

if (nodes.Count() > 0)
{
    nodes[0].ForeColor = Color.Blue;
    nodes[0].EnsureVisible();
}

通過上面的代碼,我正在更新樹視圖...

聽起來任務正在以令人難以置信的速度更新,並且更新UI相當昂貴。 您為什么不每隔十分一刻才更新一次? 您還可以在填充TreeView時禁用繪畫-因為在UI處於活動狀態時按質量添加節點會損害性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM