那要看.大多数时候,这不会是一个问题.
但是,如果满足以下两个条件,NSTimer 则会阻止UI线程:
NSRunLoop主线程上.无论何时通过scheduledTimerWith...在主线程上调用NStimer的类方法创建它,都会出现这种情况.从文件来看
\n\n\n\n\n计时器与 run\n 循环结合使用。要有效地使用计时器,您应该了解运行循环如何运行xe2x80x94请参阅 NSRunLoop 和线程编程指南。
\n\n一旦安排在运行循环上,计时器就会按照指定的时间间隔触发,直到其失效为止。非重复计时器在触发后立即失效。但是,对于重复计时器,您必须通过调用其 invalidate 方法自行使计时器对象无效。调用此方法会请求从当前运行循环中删除计时器;\n 因此,您应该始终从安装计时器的同一线程调用 invalidate 方法。使计时器无效会立即禁用它,以便它不再影响运行循环。然后,run 循环会在 invalidate 方法返回之前或稍后某个时刻删除并释放计时器。一旦失效,计时器对象就无法重复使用。
\n
我相信NSTimer不会阻塞 UI 线程。另请看一下之前的 SO 问题NSTimer 和更新 UI
| 归档时间: |
|
| 查看次数: |
4715 次 |
| 最近记录: |