美文网首页
CFRunLoop OverView 学习(翻译)

CFRunLoop OverView 学习(翻译)

作者: sjwu | 来源:发表于2017-03-10 09:12 被阅读39次

CFRunLoop 是一个当监听信号源输入,然后分发控制的对象。包含:用户输入,网络变化,生命周期,延迟事件,还有异步回调等。

这个循环池能够监听3种事件来源。

1:CFRunLoopSource 会调用CFRunLoopAddSource(_:_:_:) 这个方法加入到循环池。

2:CFRunLoopTimer  会调用CFRunLoopAddTimer(_:_:_:) 这个方法加入到循环池。

3:CFRunLoopObserver 会调用CFRunLoopAddObserver(_:_:_:) 这个方法加入到循环池。

一旦上述的事件发送消息,你必须马上将这个事件加入循环池。当然,你也可以通过稍后删除这个对象,或者让这个事件永远不响应。从而不会再受到这个事件的回调。

事件,timer事件,观察者通知一旦加入都必须设置一个或者多个loop模式。每次运行循环都运行在特定的模式下,而且只会响应相应模式下的事件。你尽可能的设置defaultMode 这个模式,因为它当应用是在闲置的时候,运行循环就是这个模式。系统它会定义一些其他的模式,用以来闲置有写信号来源。毕竟运行循环的标示只是指定为一个字符串。当然,你也可以自定义自己的运行模式,来限制去触发一些事件。

Core Foundation 框架定义了一个假的模式(common)。这个模式下对应事件源你可以关联多个模式。commonModesdefaultMode 都只是众多模式中的一个。你可以调用CFRunLoopAddCommonMode(_:_:) 这个方法加入自己自定义的模式到运行循环。

每一个线程都有一个运行循环,你能创建和销毁线程的运行循环。Core Foundation 会帮你自动创建线程的运行循环。当run Loop模式下至少有一个事件,那就必须执行。

CFRunLoopGetCurrent() 获得当前线程

CFRunLoopRun() 运行当前线程的run Loop

CFRunLoopStop(_:) 停止当前线程的run Loop

CFRunLoopRunInMode(_:_:_:) 运行当前线程,并指定相应的Model

Run loops 能够递归调用,你能在任意的run Loop 里面创建,嵌套其他的run Loop。

Cocoa 创建了比CFRun Loop 更高级别事件循环,

相关文章

  • CFRunLoop OverView 学习(翻译)

    CFRunLoop 是一个当监听信号源输入,然后分发控制的对象。包含:用户输入,网络变化,生命周期,延迟事件,还有...

  • CFRunLoop总览翻译

    总览一个CFRunLoop对象监控事务的输入源,并当他们准备好时进行调度处理。输入源包括用户输入设备、网络联接、定...

  • RunLoop(1)

    __CFRunLoop __CFRunLoopMode __CFRunLoopSource __CFRunLoop...

  • 【翻译】An overview of gradient desc

    An overview of gradient descent optimization algorithms S...

  • VR 概述

    个人翻译,如有不妥之处,敬请指正,共同学习,共同进步!原文地址:VR overview VR概述 Unity项目不...

  • ReactiveCocoa 4 文档翻译:框架组成介绍

    原文:Framework Overview 我翻译的RAC4的文档ReactiveCocoa 4 官方文档翻译Re...

  • Pinpoint技术概述

    Pinpoint技术概述 注: 内容翻译自官方文档 Technical Overview Of Pinpoint,...

  • Unity Profiler概述及Profiler window

    文章内容主要翻译自 官方文档Profiler overview内容翻译主要以机器翻译为主,有翻译错误的地方大家留言...

  • CFRunLoop

    CFRunLoop 数据结构 CFRunLoopMode数据结构 name: NSDefaultRunLoopM...

  • CFRunLoop

    数据结构 __CFRunLoopMode __CFRunLoop __CFRunLoops 函数: __CFRun...

网友评论

      本文标题:CFRunLoop OverView 学习(翻译)

      本文链接:https://www.haomeiwen.com/subject/fxzwgttx.html