我在一个android canvas游戏上工作,并注意到一个滞后的尖峰,就像主要的游戏形式正在绘制。它是在我开始在不同的部分中使用synchronized(surfaceHandler),试图对抗并发数组修改之后开始的。我是不是同步过度了?何时同步、何时不同步以及何时应修改可见数据的经验法则是什么?
还有,有没有可能是由其他原因引起的?draw方法在这种情况下执行,但不能进行触摸交互(大多数触摸方法是同步的)。
建议?
发布于 2012-01-05 14:04:19
我认为,只要你在一个区域中从曲面持有者生成画布,你就不应该进行同步。这可能是也可能不是导致滞后峰的原因。如果在多个线程中使用surfaceHandler,则可能需要将所有绘图压缩到一个线程中,或者需要保持同步。
https://stackoverflow.com/questions/8738291
复制相似问题