2011-09-16 35 views
1

我正在研究一个程序,该程序将从您的汽车中获取数据并将其显示在虚拟gagae板上。我正在重新构建软件并计划应用我学到的新技术。就像使用Composite模式来组织我的可绘制对象一样。传递值或引用自定义数据结构?

我的问题是我的图形是由一个数据集支持,该数据集具有我汽车状态的当前快照。当我初始化可绘制对象时,是否应该将指针传递给数据集中的值,或者当我调用可绘制对象的更新函数时,是否应该通过缓冲区将实际值传递给它。如果我传递一个指向drawable的指针,它会在我调用update函数时获取该值,但同时我将不得不向该对象提供用于锁定导致我的数据集错过可能的值插入的函数硬件。如果我直接将值传递给更新函数,我可以将线程锁与实际绘图分开,但可能需要花一点时间才能获得该值。另外,如果按值传递,则将整个数据集复制到缓冲区中,而不管刚更新了多少个参数。

现在,因为我有它的软件设置为在图形和数据集之间有一个缓冲区,以便数据集得到更新时,该值传递到缓冲区以被拖动到屏幕上。我试图重写软件的原因是因为这种方法似乎让我放慢了速度。

所以编程大师听起来更好。

+0

显示关系的小,简洁例子,你的选择会使得这个更容易理解。我很难理解“文本之墙”的问题。 –

回答

0

我会排队硬件中的所有更新,并且只对数据集进行处理,随后进行更新,并在显示完成初始完整备份数据集的完整呈现时显示。所需的唯一锁(如果有的话)将位于生产者 - 消费者队列中,更新来自硬件读取线程。

RGDS, 马丁

+0

哦 - 我没有真正回答这个问题 - 我应该先说'通过参考':) –