2011-09-16 36 views
1

我正在研究一個程序,該程序將從您的汽車中獲取數據並將其顯示在虛擬gagae板上。我正在重新構建軟件並計劃應用我學到的新技術。就像使用Composite模式來組織我的可繪製對象一樣。傳遞值或引用自定義數據結構?

我的問題是我的圖形是由一個數據集支持,該數據集具有我汽車狀態的當前快照。當我初始化可繪製對象時,是否應該將指針傳遞給數據集中的值,或者當我調用可繪製對象的更新函數時,是否應該通過緩衝區將實際值傳遞給它。如果我傳遞一個指向drawable的指針,它會在我調用update函數時獲取該值,但同時我將不得不向該對象提供用於鎖定導致我的數據集錯過可能的值插入的函數硬件。如果我直接將值傳遞給更新函數,我可以將線程鎖與實際繪圖分開,但可能需要花一點時間才能獲得該值。另外,如果按值傳遞,則將整個數據集複製到緩衝區中,而不管剛更新了多少個參數。

現在,因爲我有它的軟件設置爲在圖形和數據集之間有一個緩衝區,以便數據集得到更新時,該值傳遞到緩衝區以被拖動到屏幕上。我試圖重寫軟件的原因是因爲這種方法似乎讓我放慢了速度。

所以編程大師聽起來更好。

+0

顯示關係的小,簡潔例子,你的選擇會使得這個更容易理解。我很難理解「文本之牆」的問題。 –

回答

0

我會排隊硬件中的所有更新,並且只對數據集進行處理,隨後進行更新,並在顯示完成初始完整備份數據集的完整呈現時顯示。所需的唯一鎖(如果有的話)將位於生產者 - 消費者隊列中,更新來自硬件讀取線程。

RGDS, 馬丁

+0

哦 - 我沒有真正回答這個問題 - 我應該先說'通過參考':) –