我仍然掌握C Sharp和.NET,我正在研究一個應用程序來顯示數據不斷從USB設備讀取。我有所有的USB代碼工作,它每5ms接收一次數據更新。數據由多個單位的一組傳感器值組成,例如50個單位,每個單位有12個傳感器。最有效的方式來顯示我的數據快速流體更新
當前我正在使用ListBox對象來顯示50行數據。我將列表框模式設置爲OwnerDrawFixed,將我的數據源設置爲表示從USB設備讀取的數據的對象數據數組(每列ListBox有一個對象),並使用DrawItem事件以圖形方式繪製每行列表框請求列表框(我這樣做,以啓用文字着色,格式,整潔的佈局等)。
爲了讓ListBox刷新正在顯示的數據,我打電話定期調用Invalidate來強制重繪,但這是非常慢的,即使在低頻率下閃爍也是不可接受的,比如1秒更新,任何接近5ms刷新傳感器的地方。
任何人都可以提出一個更好的方法來更新屏幕上的數據,也許一個我不是每次都繪製所有東西,或者可能是一種方式來告訴ListBox只重繪一行可能如果該行上的數據已經改變?
不管怎樣,我並沒有被綁定到一個ListBox上,它只是我對.Net框架的陌生 - 也許最好的解決方案可能是將所有東西都渲染成位圖,然後通過一個單獨的動作將它移動到屏幕上。
我已經閱讀過類似的問題,但在那裏的建議並沒有真正幫助... c# - fast ListBox data update
由經驗豐富的.NET開發人員的任何其他建議不勝感激...
謝謝,我會看看成。 –