我正在开发一个程序,该程序将从您的汽车中获取数据并将其显示在虚拟gagae板上。我正在重新构建软件并计划应用我学到的新技术就像使用Composite模式来组织我的可绘制对象一样。
我的问题是我的图形由数据集支持,该数据集具有我的汽车状态的当前快照。我初始化可绘制对象时是否应该将指针传递给数据集中的值,或者当我调用可绘制对象的更新函数时,是否应该通过缓冲区将实际值传递给它。如果我将指针传递给drawable,它会在我调用更新函数时获取值,但同时我必须为对象提供锁定函数的方法,从而导致我的数据集错过可能的值插入硬件。如果我将值直接传递给更新函数,我可以将线程锁与实际图形分开,但可能需要更多时间让图形获取值。此外,如果我通过值传递将整个数据集复制到缓冲区中更为有利,无论刚刚更新了多少参数。
现在我已经将软件设置为在图形和数据集之间有一个缓冲区,以便数据集得到更新,将值传递到缓冲区以绘制到屏幕上。我试图重写软件的原因是因为这种方法似乎对我来说很慢。
所以编程大师的方式听起来更好。
答案 0 :(得分:0)
我会从硬件中排队所有更新,只对数据集进行处理和后续更新,并在显示完成初始完整渲染完整备份数据集时显示。所需的唯一锁定(如果有的话)将位于生产者 - 消费者队列中,其中更新来自您的硬件读取线程。
RGDS, 马丁