2012-07-16 115 views
0

有人可以告訴我如何在UI線程和其他「工人」線程之間的Silverlight進程處理。Silverlight UI線程阻塞

我遇到的情況,我有通過視圖模型更新視圖幾百個複雜的UI對象。每個項目都有自己的視圖模型。

如果每個視圖模型有一個特性,例如,所謂的IsSelected,它通過改變行爲,背景顏色,我應該如何去進行更改,以最小的UI線程阻塞?

如果更新我的(幾百個)的ViewModels,它阻止大約4秒鐘的UI線程。我怎樣才能確定什麼是阻止?有更有效的方法來更新嗎?

謝謝

回答

0

確實比一次去做它更有效的方法。

非Silverlight的具體解決辦法是空間這些更新除了與DispatcherTimer幾毫秒延遲調用,因此該線程有一些「喘息空間」與執行路徑進行。

但你也應該考慮一下你的架構,如果你處理數百臺虛擬機的可能值得使用延遲加載和更新你的屏幕順序,按重要性排序爲你的聽衆。

查看此答案,以獲得更多解釋:https://stackoverflow.com/a/1710868/21217