2009-05-19 117 views

回答

0

嘗試在你的列表框設置VirtualizingStackPanel.IsVirtualizing = 「真」 - MSDN Documentation。我也遇到過這個blog post。我沒有親自嘗試過,但它似乎是一個開始的好地方。祝你好運!

2

嘗試一些地方(小組成員爲ListBox或東西);

new Task(delegate { 
    foreach (var info in new DirectoryInfo("C:\\windows\\system32").EnumerateFiles()) { 
     PanelList.Dispatcher.Invoke(DispatcherPriority.Background, (Action)delegate { 
      PanelList.Items.Add(info); 
     }); 
     Thread.Sleep(0); 
    } 
}).Start(); 

你想運行一個後臺任務,並逐步通過Dispatcher.Invoke更新UI控件,請確保您的設置優先relativly低,我總是拋出一個睡在只是爲了好玩(voluntarially上下文交換),同樣,如果你的當前任務已被取消,你應該檢查...

哦雅,這與其說是一個性能改進爲precieved性能和用戶界面的響應。

+0

這種做法正是我所需要的東西。感謝您發佈它! – 2014-11-20 19:01:45