参考文档:http://www.cnblogs.com/junhuawang/p/4647559.html
 
- (void)viewDidLoad
{
[super viewDidLoad];
 
dispatch_queue_t queue = dispatch_queue_create("kk", DISPATCH_QUEUE_SERIAL);
 
// 串行队列中执行异步任务
dispatch_async(queue, ^{
 
// 在子线程中使用定时器
 
/*************************************************************/
 
/*
 
// 第一种方式
 
// 此种方式创建的timer已经添加至runloop中
[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(doSomething) userInfo:nil repeats:NO];
 
// 在线程中使用定时器,如果不启动run loop,timer的事件是不会响应的,而子线程中runloop默认没有启动
// 让线程执行一个周期性的任务,如果不启动run loop, 线程跑完就可能被系统释放了
[[NSRunLoop currentRunLoop] run];// 如果没有这句,doSomething将不会执行!!!
 
*/
 
/*************************************************************/
 
 
 
/*************************************************************/
 
// 第二种方式
NSTimer *timer = [NSTimer timerWithTimeInterval:2.0 target:self selector:@selector(doAnything) userInfo:nil repeats:NO];
 
// 将定时器添加到runloop中
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
 
// 在线程中使用定时器,如果不启动run loop,timer的事件是不会响应的,而子线程中runloop默认没有启动
// 让线程执行一个周期性的任务,如果不启动run loop, 线程跑完就可能被系统释放了
[[NSRunLoop currentRunLoop] run];// 如果没有这句,doAnything将不会执行!!!
 
/*************************************************************/
 
NSLog(@"子线程结束");
 
});
}
 
- (void)doSomething{
 
NSLog(@"doSomething...");
}
 
- (void)doAnything{
 
NSLog(@"doAnything...");
}

优化定时器NSTimer-runloop使用的更多相关文章

  1. iOS UI-Lable标签、NStimer定时器和RunLoop超级死循环

    // 标签UILable -显示文字 // 1.创建标签 UILabel *lable = [[UILabel alloc] init]; // 2.设置标签的坐标和大小 [lable setFram ...

  2. 定时器(NSTimer)

    iOS中定时器NSTimer的使用 1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget sel ...

  3. iOS定时器-- NSTimer 和CADisplaylink

    iOS定时器-- NSTimer 和CADisplaylink 一.iOS中有两种不同的定时器: 1.  NSTimer(时间间隔可以任意设定,最小0.1ms)// If seconds is les ...

  4. 定时器NSTimer的用法

        //时间间隔     NSTimeInterval activeTimeInterval = NETWORK_SEND_ACTIVE_TIME;     NSTimeInterval othe ...

  5. [置顶] ios 时间定时器 NSTimer应用demo

    原创文章,转载请注明出处:http://blog.csdn.net/donny_zhang/article/details/9251917 demo功能:ios NSTimer应用demo .ipho ...

  6. runloop 和 CFRunLoop - 定时器 - NSTimer 和 GCD定时器

    1. 2. #import "ViewController.h" @interface ViewController () @property (nonatomic, strong ...

  7. ios基础篇(二十三)—— 定时器NSTimer与图片的自动切换

    一.NSTimer NSTimer是一个能在从现在开始到后面的某一个时刻或者周期性的执行我们指定的方法的对象.可以按照一定的时间间隔,将制定的信息发送给目标对象.并更新某个对象的行为.你可以选择在未来 ...

  8. IOS中定时器NSTimer的开启与关闭

    调用一次计时器方法: myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(scro ...

  9. iOS定时器NSTimer的使用方法

    1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelect ...

随机推荐

  1. 0909 a newbeginning

    操作系统无意是所有计算机系各专业的基础,如果不懂这门课程的知识,大学四年计算机可以说是白读了. 这学期很荣幸能上MISSDU的操作系统,我也希望能学到关于操作系统的知识,以至于丰富自己的专业知识. 下 ...

  2. Ruby学习笔记0708

    #!/usr/bin/env ruby class MegaGreeter attr_accessor :names # 初始化這個物件 def initialize(names = "Wo ...

  3. 01-04 Json和弹窗

    //JSON是一种数据格式//JSON比较像php里面的关联数组,它里面存的内容也是key和value成对存在的 </body><script type="text/jav ...

  4. 【JS】HTMLprop与attr的区别

    与prop一样attr也可以用来获取与设置元素的属性.区别在于,对于自定义属性和选中属性的处理.选中属性指的是 checked,selected 这2种属性1. 对于自定义属性 attr能够获取,pr ...

  5. Bullet核心类介绍(Bullet 2.82 HelloWorld程序及其详解,附程序代码)

    实验平台:win7,VS2010 先上结果截图: 文章最后附有生成该图的程序. 1. 刚体模拟原理 Bullet作为一个物理引擎,其任务就是刚体模拟(还有可变形体模拟).刚体模拟,就是要计算预测物体的 ...

  6. 修改VS 所有项目的Include目录和Lib目录

    像以前的方法 在 工具--选项--项目和解决方案里的修改已经被弃用.

  7. oracle 锁表查询与解锁

    查询锁住的表 SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,s.terminal, ...

  8. flex4

    今天发现了一个问题:昨天把序列号输入之后可以用了,但是再次打开软件之后还是要求输序列号的.遇到这种情况的朋友可以这样操作.打开C:\WINDOWS\system32\drivers\etc这个目录,修 ...

  9. 第三篇T语言实例开发,图色操作

    ---恢复内容开始--- 图色的基本操作 1.找颜色色命令的基本操作 坐标点取色:获取指定坐标点的颜色 区域找色:在指定区域里找某一个颜色 模糊找色:在指定区域里找某一个颜色,可以设置相似度 多点找色 ...

  10. 以application/json 方式提交 然后用在php中读取原始数据流的方式获取 在json_encode

    html 如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>& ...