文档章节

GCD定时器

AppleDream
 AppleDream
发布于 2016/08/02 11:09
字数 234
阅读 214
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

GCD定时器

#####1.1.GCD定时器基本应用

-(void) baseGCD{
    //创建一个GCD定时器
    //<#dispatch_source_type_t type#>  DISPATCH_SOURCE_TYPE_TIMER
    self.timer=dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0 ));
    //设置定时器什么时候起动,间隔是多少
    dispatch_source_set_timer(self.timer, DISPATCH_TIME_NOW, 2.0*NSEC_PER_SEC, 0);
    //设置定时器要做的事情
    dispatch_source_set_event_handler(self.timer, ^{
        NSLog(@"start --v%@",[NSThread currentThread]);
    });
    //定时器默认是没有启动的,所以要托运启动
    dispatch_resume(self.timer);
}

#####2.1.加强版GCD

int count=0;
-(void) GCD{

    //GCD不受runLoop模式的影响

    dispatch_queue_t queue=dispatch_get_global_queue(0, 0);

    //创建一个GCD定时器
    //DISPATCH_SOURCE_TYPE_TIMER
    self.timer=dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
    //设置定时器什么时候起动,间隔是多少
    //when:何时开始
    dispatch_time_t start=dispatch_time(DISPATCH_TIME_NOW, 3.0*NSEC_PER_SEC);
    //间隔
    uint64_t interval=2.0*NSEC_PER_SEC;

    dispatch_source_set_timer(self.timer, start, interval, 0);
    //设置定时器要做的事情
    dispatch_source_set_event_handler(self.timer, ^{
        NSLog(@"start --v%@",[NSThread currentThread]);
        //执行五次后自动释放gcd
        count++;
        if (count>4) {
            dispatch_cancel(self.timer);
            self.timer=nil;
        }
    });
    //定时器默认是没有启动的,所以要托运启动
    dispatch_resume(self.timer);
}
下一篇: runLoop介绍
AppleDream
粉丝 9
博文 92
码字总数 26198
作品 0
昆山
程序员
私信 提问
加载中
请先登录后再评论。
Swift百万线程攻破单例(Singleton)模式

一、不安全的单例实现 在上一篇文章我们给出了单例的设计模式,直接给出了线程安全的实现方法。单例的实现有多种方法,如下面: class SwiftSingleton { } 这段代码的实现,在shared中进行条...

一叶博客
2014/06/20
3.2K
16
Reachability

判断设备网络连接情况。相对于苹果官方的Reachability,这是一个更加高级、更加好用的Reachability,支持ARC、支持block、使用GCD方式来通知网络的变化。 [Code4App.com]...

匿名
2012/11/12
7.6K
0
C多线程网络库--xs

基于C多线程网络库,欢迎大家使用,例子在代码example目录下,以后我会再增加一些例子。 文档暂时没有,有问题请邮件我:-) 获取代码:https://github.com/xueguoliang/xs xs致力于1)多线程网...

薛国良
2013/05/01
4.4K
0
J360-cloud SpringCloud系列一:分布式配置服务器ConfigServer

j360开源博客之 ---------------------------------------------------------- J360-Cloud系列 spring-cloud快速入门工程之j360-cloud-all:(欢迎star、fork) https://github.com/xuminwl......

Hi徐敏
2015/10/08
4K
14
iOS 多线程—GCD 基本用法

什么是进程? 最通俗的描述就是一个个pid,官方的说法:进程是程序在计算机上的一次执行活动。打开一个app 就开启了一个进程。可包含多个线程。 什么是线程? 独立执行的代码段,一个线程同一...

Carson6931
2015/10/23
2.3K
12

没有更多内容

加载失败,请刷新页面

加载更多

O(log n)究竟意味着什么? - What does O(log n) mean exactly?

问题: I am learning about Big O Notation running times and amortized times. 我正在学习Big O Notation运行时间和摊销时间。 I understand the notion of O(n) linear time, meaning t......

富含淀粉
37分钟前
17
0
TensorFlow 机器学习秘籍中文第二版·翻译完成

原文:TensorFlow Machine Learning Cookbook 协议:CC BY-NC-SA 4.0 不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则 2.3.c 在线阅读 ApacheCN 面试求职交流群 724187166 ...

布客飞龙
47分钟前
17
0
gin 怎么写个简单的中间件

gin 写个简单中间件,直接上例子: func GinServer() {engine := gin.Default()engine.Use(TestMiddleware)engine.GET("/", func(context *gin.Context) {context.JSON(http.......

is晓歌
50分钟前
20
0
查找算法——插值查找

对于有序的查找表,除了顺序查找、折半查找、斐波那契查找,还可以使用插值查找,对于元素分布较为均匀的查找表,插值查找的性能更优。不妨设想一下存在这样子的序列[10, 12, 14, 16, 18],以...

城北徐公美
53分钟前
20
0
asm 数组的双向传递

asm目前测试中比js大概能快 1.2 - 1.5倍左右 c/c++ 能快1.7 - 2.3 倍左右 asm的最大优势还是书写可以使用类似ts的语法, 比go和c系更加方便, 学习和改造已有工具的成本不大 但是性能还是问题,...

阿豪boy
59分钟前
26
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部