我应该运行NSTimer最快的是什么?

时间:2010-11-27 02:04:02

标签: iphone iphone-sdk-3.0 ios4

我能运行NSTimer的最快速度是什么,仍能获得可靠的结果?我已经读到接近30ms它开始变得无用,那么它“开始变得无用”...... 40ms? 50ms的?

3 个答案:

答案 0 :(得分:4)

the docs

  

时间的有效解决方案   计时器的间隔限制为开启    50-100毫秒

的顺序

听起来如果你想要安全,你不应该使用0.1秒以下的计时器。但为什么不在你自己的应用程序中尝试它,看看你能走多远?

您将无法获得此保证。 NSTimers本质上是机会性的,因为它们与事件循环一起运行,并且除了Cocoa定时器调度机制的限制之外,它们有效的最佳粒度将取决于应用程序中发生的所有其他内容。

答案 1 :(得分:2)

你对可靠性的定义是什么? 1秒定时器中的16 mS误差误差小于2%,但30 mS定时器误差超过50%。

NSTimers将等待当前运行循环中发生的任何事情完成,并且任何时间错误都会累积。例如如果您触摸显示屏N次,则所有后续重复的NSTimer激活可能会延迟0到N个触摸处理程序所占用的累计时间(以及在“错误”时间运行的任何其他内容)。等

CADisplayLink计时器将尝试将时间量化为帧速率,假设没有一组前景任务与帧时间一样长。

答案 2 :(得分:1)

取决于您要完成的结果。 NSTimer Class 0.5 - 1.0是获得可靠结果的好地方。

相关问题