iOS中如何设置GCD的定时器功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计797个文字,预计阅读时间需要4分钟。
前言:CADisplayLink、NSTimer 不准时CADisplayLink和NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,可能会导致这两个定时器不准确。例如:添加了我们创建的一个NSTimer定时器。
前言:CADisplayLink、NSTimer 不准时 CADisplayLink、NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,有可能会导致前两个定时器不准时。
举个例子:
加入我们创建了一个NSTimer定时器,每1秒钟做任务。那么,什么时候执行NSTimer呢?
是在RunLoop跑圈的过程中执行NSTimer定时器,而RunLoop跑完一圈执行的时间不固定,也就导致有可能1秒钟过去了,但是RunLoop还没有执行到定时器的任务,那么,这就造成定时器有可能不准时。
GCD是不依赖与RunLoop,是直接跟系统内核交互的。时间比较准确。
本文共计797个文字,预计阅读时间需要4分钟。
前言:CADisplayLink、NSTimer 不准时CADisplayLink和NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,可能会导致这两个定时器不准确。例如:添加了我们创建的一个NSTimer定时器。
前言:CADisplayLink、NSTimer 不准时 CADisplayLink、NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,有可能会导致前两个定时器不准时。
举个例子:
加入我们创建了一个NSTimer定时器,每1秒钟做任务。那么,什么时候执行NSTimer呢?
是在RunLoop跑圈的过程中执行NSTimer定时器,而RunLoop跑完一圈执行的时间不固定,也就导致有可能1秒钟过去了,但是RunLoop还没有执行到定时器的任务,那么,这就造成定时器有可能不准时。
GCD是不依赖与RunLoop,是直接跟系统内核交互的。时间比较准确。

