iOS-OC中级

dispatch_time_t 的创建

2019-08-14  本文已影响0人  跃文

开发中常用到GCD方法dispatch_after(<#dispatch_time_t when#>, <#dispatch_queue_t _Nonnull queue#>, <#^(void)block#>) 方法进行延迟处理

一般在主线程中我们不能用sleep来进行延迟,所以用dispatch_after是最合适的。dispatch_after能让我们添加进队列的任务延时执行,这个函数并不是在指定时间后执行处理,而只是在指定时间后追加处理到dispatch_queue队列中执行。

OC中为dispatch_time_t提供了两种构造方法

dispatch_time(dispatch_time_t when, int64_t delta)
dispatch_walltime(const struct timespec *_Nullable when, int64_t delta)

① 用法

dispatch_time_t time_t = dispatch_time(DISPATCH_TIME_NOW, 10* NSEC_PER_SEC);

dispatch_time_t when 系统提供两种定义如下

#define DISPATCH_TIME_NOW (0ull)
#define DISPATCH_TIME_FOREVER (~0ull)

②用法

dispatch_time_t time_t = dispatch_walltime(DISPATCH_TIME_NOW, 100* NSEC_PER_USEC)

二者的区别

上一篇下一篇

猜你喜欢

热点阅读