gpt4 book ai didi

iphone - 什么是运行循环?

转载 作者:太空狗 更新时间:2023-10-30 03:14:08 25 4
gpt4 key购买 nike

看了NSRunLoop的文档后,我不是很明白。我正在生成一个辅助线程,其中有一个 NSTimer,每 1 秒启动一次。使用 performSelectorOnMainThread 更新屏幕上的标签..

然而,为了让它工作,我需要一个运行循环,但我不明白它的概念?

谁能解释一下?

谢谢。

最佳答案

运行循环是有效的:

while(... get an event ...)
... handle event ...;

它在一个线程上运行;主线程有一个主事件循环,在这个循环中处理用户事件和大多数 UI 绘图等。 documentation explains it in detail .

但是,在您的情况下,您不需要线程

听起来您所做的只是定期更新 UI 中的标签;不是非常计算密集型的东西。

只需在主线程中安排您的计时器并完成它。无需使用 performSelectorOnMainThread: 启动线程,也无需承担保证跨线程数据一致性的所有复杂性。


抱歉 -- 没明白你的问题。

在内部,运行循环的工作原理基本上是在运行循环中放置一个标志,上面写着“经过这段时间后,触发计时器”。不涉及额外的线程,更好的是,它不是通过轮询来检查时间。将运行循环视为有效维护时间线。它会被动地让时间流逝,直到在时间线上找到感兴趣的东西(所有这些都没有轮询——轮询很糟糕。要避免。)

不过,这确实意味着计时器永远不会 100% 准确。同样,如果你有一个每秒重复的计时器,它会随着时间的推移而漂移。

还有;而不是直接触发绘图事件。您的计时器应该使需要更新的 View 无效,然后让底层对象处理实际更新屏幕的最佳时间。

关于iphone - 什么是运行循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4947556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com