我目前正在爲UWP(windows IoT核心)編寫一個kiosk風格的應用程序,以用於嵌入式設備(例如pi3等)。頁面的多個UI線程(加速緩慢的個別控件)
該設備有幾個傳感器,這些傳感器在應用程序的單個屏幕上實時輸出到各種圖形/圖表中,但我遇到了性能問題。傳感器正在單獨的線程中讀取(使用Task.Run()=> {}),但經過分析,這似乎並不花費太多的CPU時間。 似乎更新圖形花費了太多時間,並且這不是分佈在內核上,因爲只有一個UI線程。 CPU使用率不會超過25%,UI響應速度會變慢。
我嘗試了幾次優化(例如減少數據點的數量等),這有所幫助,但這還不夠。也許有更快的圖表組件(目前使用Telerik uwp組件),但我正在尋找另一種方法。
所以我的問題總結:有沒有什麼辦法讓圖表分別在不同的UI線程中呈現(並因此分佈在其他內核中)?
[稍後更新] 看起來像新的勝利物聯網發佈有點快,以及更新的圖表組件。
這很難,沒有看到你的應用程序是如何寫的說,但一個可能性是,該UI是所有這些其他後臺線程經常更新?那麼排隊更新的可能性以及是否按照計劃的基礎更新UI,比如每個.1或.5秒?如果你的UI線程有很多事情發生,你可能會遭受太多的上下文切換。 – cost
我試着從不同的線程本身進行更新並使用您的方法。到目前爲止,在使用Dispatcher.Runasync優先級設置方面似乎沒有多大區別。而且我還必須添加更多圖表。 – user2921878
您的圖表是否每次都完全重新繪製,或者只是其中的一小部分? – cost