iOS中如何设置GCD的定时器功能?

更新于
2026-10-09 11:32:21
0阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计797个文字,预计阅读时间需要4分钟。

iOS中如何设置GCD的定时器功能?

前言:CADisplayLink、NSTimer 不准时CADisplayLink和NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,可能会导致这两个定时器不准确。例如:添加了我们创建的一个NSTimer定时器。

前言:CADisplayLink、NSTimer 不准时

​ CADisplayLink、NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,有可能会导致前两个定时器不准时。

举个例子:

​ 加入我们创建了一个NSTimer定时器,每1秒钟做任务。那么,什么时候执行NSTimer呢?
​ 是在RunLoop跑圈的过程中执行NSTimer定时器,而RunLoop跑完一圈执行的时间不固定,也就导致有可能1秒钟过去了,但是RunLoop还没有执行到定时器的任务,那么,这就造成定时器有可能不准时。

一、GCD 定时器

​ GCD是不依赖与RunLoop,是直接跟系统内核交互的。时间比较准确。

阅读全文

本文共计797个文字,预计阅读时间需要4分钟。

iOS中如何设置GCD的定时器功能?

前言:CADisplayLink、NSTimer 不准时CADisplayLink和NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,可能会导致这两个定时器不准确。例如:添加了我们创建的一个NSTimer定时器。

前言:CADisplayLink、NSTimer 不准时

​ CADisplayLink、NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,有可能会导致前两个定时器不准时。

举个例子:

​ 加入我们创建了一个NSTimer定时器,每1秒钟做任务。那么,什么时候执行NSTimer呢?
​ 是在RunLoop跑圈的过程中执行NSTimer定时器,而RunLoop跑完一圈执行的时间不固定,也就导致有可能1秒钟过去了,但是RunLoop还没有执行到定时器的任务,那么,这就造成定时器有可能不准时。

一、GCD 定时器

​ GCD是不依赖与RunLoop,是直接跟系统内核交互的。时间比较准确。

阅读全文