NSRunLoop(1)官方文档
2016-05-02 08:42
239 查看
Run Loops(官方文档)
(1)介绍:Run loops是与线程相关的基础部分,一个run loops是一个事件处理的循环,你可以使用它来安排工作以及用它来协调the receipt(收到) of incoming events。run loop的目的是当有工作时保持你的线程处于忙碌中,当没有工作时,使你的线程进入睡眠。
(2)使用,Run loop的管理不是完全自动的,你必须在合适的时机设计你的线程代码来开启run loop,以及响应即将发生的事件。Cocoa和Core Foundation提供了run loop对象帮助你配置和管理你的线程runloop。在app中你不需要明确的创建这些线程对象;每个线程(包括app的主线程)都与一个run loop对象相联系。只有从属的线程才需要在代码中明确的创建线程对象。然而,app的框架自动的设置了病在主线程上run这些线程了当app的某部分开启进程的时候。
runloop是一个循环,你的线程进入runloop并使用它去run event handlers 来响应传入的事件,你的代码提供了控制语句用于实现运行循环的一部分的实际的循环。RunLoop 接受2种不同的事件源,input sources (异步事件)和 timer sources(同步事件)
何时使用RunLoop?
1.使用ports或自定义输入源 与其他线程通讯
2.在线程中使用定时器
3.在程序中使用performSelector等方法
4.让线程周期性执行某个任务
(3)方法介绍
[NSThread detachNewThreadSelector:@selector(requestImagesThread) toTarget:self withObject:nil];
开一个新线程,使用requestImagesThread方法作为新线程的入口点,在这个线程执行期间toTarget和 withObject传入的参数被保留,然后释放,当toTarget的参数执行完这个requestImagesThread方法时,线程退出。
(1)介绍:Run loops是与线程相关的基础部分,一个run loops是一个事件处理的循环,你可以使用它来安排工作以及用它来协调the receipt(收到) of incoming events。run loop的目的是当有工作时保持你的线程处于忙碌中,当没有工作时,使你的线程进入睡眠。
(2)使用,Run loop的管理不是完全自动的,你必须在合适的时机设计你的线程代码来开启run loop,以及响应即将发生的事件。Cocoa和Core Foundation提供了run loop对象帮助你配置和管理你的线程runloop。在app中你不需要明确的创建这些线程对象;每个线程(包括app的主线程)都与一个run loop对象相联系。只有从属的线程才需要在代码中明确的创建线程对象。然而,app的框架自动的设置了病在主线程上run这些线程了当app的某部分开启进程的时候。
runloop是一个循环,你的线程进入runloop并使用它去run event handlers 来响应传入的事件,你的代码提供了控制语句用于实现运行循环的一部分的实际的循环。RunLoop 接受2种不同的事件源,input sources (异步事件)和 timer sources(同步事件)
何时使用RunLoop?
1.使用ports或自定义输入源 与其他线程通讯
2.在线程中使用定时器
3.在程序中使用performSelector等方法
4.让线程周期性执行某个任务
(3)方法介绍
[NSThread detachNewThreadSelector:@selector(requestImagesThread) toTarget:self withObject:nil];
开一个新线程,使用requestImagesThread方法作为新线程的入口点,在这个线程执行期间toTarget和 withObject传入的参数被保留,然后释放,当toTarget的参数执行完这个requestImagesThread方法时,线程退出。
相关文章推荐
- 【DevOps】为什么我们永远疲于奔命?
- 网络管理之IP地址篇
- 文件的读出 编辑 管理
- C#线程间不能调用剪切板的解决方法
- SQL Server 2008 R2 应用及多服务器管理
- C#生成Word文档代码示例
- C#线程同步的三类情景分析
- C#获取进程或线程相关信息的方法
- 简单对比C#程序中的单线程与多线程设计
- C#停止线程的方法
- C#子线程更新UI控件的方法实例总结
- 如何使用C#从word文档中提取图片
- C#线程队列用法实例分析
- jQuery窗口、文档、网页各种高度的精确理解
- C++使用CriticalSection实现线程同步实例
- 基于C++实现的线程休眠代码
- VC下通过系统快照实现进程管理的方法
- VB读取线程、句柄及写入内存的API代码实例
- C#网络编程基础之进程和线程详解
- C#通过Semaphore类控制线程队列的方法