gpt4 book ai didi

ios - 什么需要在主线程上?

转载 作者:可可西里 更新时间:2023-11-01 03:39:30 26 4
gpt4 key购买 nike

我写了一个小定义,叫做ensureInMainThread (而且我经常使用它)。但是,我不确定哪些用户界面方法需要 在主线程上被调用。 setNeedsDisplaysetNeedsLayout 怎么样?对于需要在 iOS 5.x 中的主线程上调用的方法,经验法则是什么?

这些问题是相关的(一些低质量的问题和答案,一些非常具体的案例),但我想要一个全面的、单一的好答案:

最佳答案

从 iOS 4.0 开始,some user interface updates can be performed on a background thread :

  • Drawing to a graphics context in UIKit is now thread-safe. Specifically:

    • The routines used to access and manipulate the graphics context can now correctly handle contexts residing on different threads.

    • String and image drawing is now thread-safe.

    • Using color and font objects in multiple threads is now safe to do.

David Duncan 在他的评论中证实了这一点 here .

除此之外,关于 UIKit 的几乎所有其他内容都不是线程安全的,因此在这些情况下,您应该确保在主线程上与它交互。

顺便说一句,我更喜欢my block-based implementation of a "always run on the main thread" function在您链接到的宏上,因为我喜欢需要在主线程上运行的代码的显式包装。

关于ios - 什么需要在主线程上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8537979/

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