2016 - 2024

感恩一路有你

iosrunloop机制 runloop中的source0和source1分别处理什么时间?

浏览量:2730 时间:2021-03-20 18:58:43 作者:admin

runloop中的source0和source1分别处理什么时间?

source1 Apple创建一个系统来接受系统发送的事件。当手机上发生触摸、震动或锁定时,系统将向应用程序进程(进程通信)发送事件。这就是为什么它被称为基于端口的source1交付。端口是进程端口,它可以在进程中激活线程的runloop,比如在屏幕上点击应用程序的按钮或屏幕,runloop就会被唤醒来处理触摸事件。你可以做个实验。向主线程的runloop中添加一个cfrunloop obserref,并使用switch输出六个runloop状态。此时,每次点击屏幕,它都会输出六个runloop状态,然后进入睡眠状态。

source0:执行performselectors方法。如果在主线程performselectors中对子线程执行任务,则会在代码中将事件发送到子线程的runloop。此时,如果子线程打开runloop,任务将被执行。注意,performselector方法只能在子线程打开runloop时执行。如果不在子线程中打开runloop,操作将失败并崩溃。

以上是我个人的理解。如果你有任何问题,请指出

vue怎么解决在ios上屏幕滚动的问题?

这个问题的本质可以追溯到IOS runloop。滑动时Runloop切换模式。Nstimer和Scrollview默认分为两种模式,可以通过以下两种方式解决:分别将计时器添加到两种模式中;将计时器添加到顶部runloop的“common mode items”中,“common mode items”替换为runloop自动更新到具有“common”属性的所有模式。

iosrunloop机制 runloop面试 ios runloop

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。