Dispatch Source Timer
1. 声明dispatch_source_t
@property (nonatomic, strong) dispatch_source_t source;
这里必须强引用,否则计时器无法启动。
2. 定义dispatch_source_t
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t source = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
self.source = source;
3. 设置dispatch_source_t
dispatch_source_set_timer(self.source, DISPATCH_TIME_NOW, NSEC_PER_SEC, 0);
dispatch_source_set_event_handler(self.source, handler);
4. 启动NSTimer
dispatch_resume(self.source);
5. 暂停NSTimer
dispatch_suspend(self.source);
6. 移除NSTimer
dispatch_source_cancel(self.source);
注意
dispatch方法不会强引用dispatch_source_t对象,所以dispatch_source_t对象需被强引用,否则会被销毁,计时器无法执行。
Dispatch Source Timer相关推荐
- IOS并发编程指南:Dispatch Queue任务执行与Dispatch Source
导读: 本文为读<Concurrency Programming Guide>笔记第三篇,在对OS X和iOS应用开发中实现任务异步执行的技术.注意事项.Operation与Dispatc ...
- iOS之深入解析dispatch source的原理与功能
一.dispatch source 和 runLoop source dispatch source 和 runLoop source 都是用来监听事件的,可以创建不同类型的 dispatch sou ...
- RxSwift学习插曲--Timer补充内容
前言 在之前的一篇内容RxSwift学习--核心逻辑初探中,曾列举了一些使用RxSwift优势的小例子,其中关于Timer定时器的例子,在RxSwift中创建的定时器并不受RunLoop的影响,至于为 ...
- 我所理解的 iOS 并发编程
作者:bool周 原文链接:我所理解的 iOS 并发编程 无论在哪个平台,并发编程都是一个让人头疼的问题.庆幸的是,相对于服务端,客户端的并发编程简单了许多.这篇文章主要讲述一些基于 iOS 平台的一 ...
- GCD介绍(三): Dispatch Sources
何为Dispatch Sources 简单来说,dispatch source是一个监视某些类型事件的对象.当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中. ...
- GCD简介三:Dispatch Sources
一.何为Dispatch Sources 简单来说,dispatch source是一个监视某些类型事件的对象.当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中 ...
- iOS开发之三大计时器(Timer、DispatchSourceTimer、CADisplayLink)
1. 概述 说起计时器,很多开发人员第一时间就会想起Timer,但是随着使用的深入,慢慢就发现Timer不是很精确,随后就有想到GCD Timer,专业点就是DispatchSourceTimer,除 ...
- [OC学习笔记]Grand Central Dispatch
一.GCD概要 (一)什么是GCD 什么是GCD?以下摘自苹果的官方说明. Grand Central Dispatch(GCD)是异步执行任务的技术之一.一般将应用程序中记述的线程管理用的代码在系统 ...
- 09-dispatch_source
dispatch_source 是BSD系内核惯有的kqueue的包装,kqueue 是XNU内核中发生各种事件时,在应用程序编程中执行处理的技术. CPU 负荷非常小,尽量不占用资源. dispat ...
最新文章
- IntelliJ IDEA 12 创建Web项目 教程 超详细版
- Oracle(order by)
- 干掉 Navicat:这个 IDEA 的兄弟真香!
- Bit-Z为什么成为熊市之光?
- Angular 自定义 structural 指令的一个例子
- “鬼才”论文致谢刷屏!感谢我导“似导非导”的指导...
- 关于ie浏览器的问题
- 使用Flume将日志导入OSS
- Python新闻网站项目-7.Django内容后台管理系统管理开发
- spring揭秘_理解透彻!Spring中BeanFactory与FactoryBean分析
- 奥维互动地图自定义地图
- 深入浅出Go Runtime
- 表达无序列表语义的html标签是,HTML语义标签的介绍和常用的语义标签
- java bitmap api,RoaringBitmap的使用
- rrweb学习案例(网页录制,回放)-demo
- MacBook Touch Bar(触控栏)无法正常工作的解决方法
- 使用 Django 实现私有云盘
- 资深行业专家王煜全的演讲:“移动互联网中的产品创新机会”
- 基于关联规则的气象服务智能推荐
- PS创意合成苹果橘子
热门文章
- 中国电信在计算机网络扮演的角色,计算机网络.ppt
- 服装ERP——企业资源方案
- 知乎好物开通,以及实战攻略干货分享
- 精通Midjourney V5:影视相机参数总结 - 电影提示、镜头类型和镜头在电影提示背景下探讨镜头大小和镜头
- 苹果悬浮球_苹果iPhone X关闭静音模式振动功能的操作方法_教程_新闻_【生意多】...
- 宽带无线路由器原来这么简单
- Linux环境下搭建区块链私有链+部署智能合约
- 知道等级保护测评都有哪些工作内容吗?
- 关于 JS动态生成的 iframe 引入CSS 的踩坑
- CSS3 loading效果全