博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios-NSRunLoop以及定时器NSTimer-理解
阅读量:6709 次
发布时间:2019-06-25

本文共 1212 字,大约阅读时间需要 4 分钟。

[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeaction:) userInfo:@"liyang" repeats:NO];       NSTimer *tt= [NSTimer timerWithTimeInterval:1 target:self selector:@selector(timeaction:) userInfo:@"limengxia" repeats:NO];        [[NSRunLoop currentRunLoop]addTimer:tt forMode:NSDefaultRunLoopMode];        [[NSRunLoop currentRunLoop]run];//NSRunLoop的理解,每一个线程都有一个NSRunLoop对象,然而定时器也是在这个对象上面运行的,当一个线程运行完成了过后,会自动关闭线程,自然NSRunLoop也会被销毁,自然定时器就不会运行,为了不让其线程关闭,用此语句    [[NSRunLoop currentRunLoop]run];那么线程就会保持活跃状态(前提是这个线程里面还有需要被执行的东西,比如说定时器,网络请求等(经过测试的,网络请求,GCD也一样),(这可能是一种优化,单凭这句话,还不能将此线程保持活跃,必须有需要执行的东西)),不会被关闭,自然定时器也就能用了, [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeaction:) userInfo:@"liyang" repeats:NO];这么设置的定时器是自动添加到了NSRunLoop中的,  NSTimer *tt= [NSTimer timerWithTimeInterval:1 target:self selector:@selector(timeaction:) userInfo:@"limengxia" repeats:NO];这个定时器需要手动添加 [[NSRunLoop currentRunLoop]addTimer:tt forMode:NSDefaultRunLoopMode];

 如果要使定时器精确,最好将这个定时器放到多线程上去,防止线程阻塞,影响定时器的精确度

CFRunLoopRun();    CFRunLoopStop(CFRunLoopGetCurrent());//最好是成对的出现,这个和上面的维持runloop活跃状态和关掉时一样的,要不然多线程一执行完成就会关掉,这样代理那些就执行不了

 

转载于:https://www.cnblogs.com/liyang31tg/p/3662557.html

你可能感兴趣的文章
JavaScript No Overloading 函数无重载之说
查看>>
vue2.0 子组件和父组件之间的传值
查看>>
WinForm下的键盘事件(KeyPress、KeyDown)及如何处理不响应键盘事件
查看>>
scp命令
查看>>
Asp.Net Core MVC控制器和视图之间传值
查看>>
Andriod开发技巧——Fragment的懒载入
查看>>
nyoj473 A^B Problem (高速幂)
查看>>
Eclipse + CDT引入OpenCV失败的解决的方法
查看>>
Ubuntu和Win7双系统,ubuntu被删,重新启动之后显示,no such partition
查看>>
<转载> MySQL 性能优化的最佳20多条经验分享 http://www.jb51.net/article/24392.htm
查看>>
用WebCollector爬取新浪微博数据
查看>>
codeforces Looksery Cup 2015 H Degenerate Matrix 二分 注意浮点数陷阱
查看>>
MySQL数据库管理(二)单机环境下MySQL Cluster的安装
查看>>
最简单的视音频播放示例7:SDL2播放RGB/YUV
查看>>
Oracle442个应用场景-----------Oracle数据库物理结构
查看>>
关于眼界、眼光、眼前的哪些....
查看>>
jQuery的Autocomplete插件的远程url取json数据的问题
查看>>
Mono源码学习笔记:Console类(四)
查看>>
Spring Security 入门(3-11)Spring Security 的使用-自定义登录验证和回调地址
查看>>
Hadoop分布式文件系统--HDFS结构分析
查看>>