我正在使用PolyLineSegment和點在Silverlight中構建折線圖控件。它的工作方式與預期的一樣,但是當需要可視化的數據太多時(太多點),應用程序會長時間凍結。我無法將代碼移動到單獨的線程上,原因很明顯 - 它直接處理UI元素,所以當我嘗試從單獨的線程調用它們時,它會導致異常(即使UI元素尚未呈現)。Silverlight - 是否可以在後臺線程上創建UI元素?
是否有任何方法在後臺線程上動態創建UI元素,然後將它們傳遞給UI線程進行渲染?如果不是,那麼可能的解決方案是什麼?我正在考慮創建一個位圖圖像而不是實際的控件,但在這種情況下不會有太多的交互性。
什麼是最花時間?它是元素的實際渲染還是在創建每個元素之前執行一系列計算?如果是後者,你可能可以在後臺線程上運行這些計算,然後通過「Dispatcher」對每個元素的創建進行編組。 – dlev
我的代碼中沒有太多的計算,而是大量的數據。我在談論數百萬分。縮小它們並不是最好的選擇。 – Dmitry
這使得它更加困難。但是,如果您擁有數百萬的點數,它們如何一次顯示在屏幕上?即使在1024x768的時候,也有800K像素。您是否在滾動查看器中進行屏幕外渲染?如果是這樣,你可以虛擬化用戶界面嗎?如果沒有,你可能會以某種方式合併點數;這可以做到的數據? – dlev