我有一项任务需要每1秒执行一次.目前我有一个NSTimer每1秒重复emits 一次.如何在后台线程(非UI线程)中启动计时器?
我可以在主线程上启动NSTimer,然后使用NSBlockOperation来调度后台线程,但我想知道是否有更有效的方法来实现这一点.
我有一项任务需要每1秒执行一次.目前我有一个NSTimer每1秒重复emits 一次.如何在后台线程(非UI线程)中启动计时器?
我可以在主线程上启动NSTimer,然后使用NSBlockOperation来调度后台线程,但我想知道是否有更有效的方法来实现这一点.
计时器需要安装到运行循环中,该循环在已经运行的后台线程上运行.该线程必须继续运行run循环,才能让计时器真正启动.为了让后台线程能够继续触发其他计时器事件,它需要生成一个新线程来实际处理事件(当然,假设您正在进行的处理需要大量时间).
不管它值多少钱,我认为通过使用Grand Central Dispatch或NSBlockOperation
生成新线程来处理计时器事件是对主线程的完全合理的使用.