【发布时间】:2026-01-02 09:25:02
【问题描述】:
我想知道 AppDelegate 是否是线程安全的?我目前有一个在辅助线程上运行网络任务的操作,当任务开始时,我想将NetworkActivityIndicatorVisible设置为YES,当任务完成时,将其设置为NO。我是否必须始终在主线程中调用它,或者我可以在当前运行循环线程中调用它?
谢谢
【问题讨论】:
标签: objective-c ios nsoperation nsoperationqueue
我想知道 AppDelegate 是否是线程安全的?我目前有一个在辅助线程上运行网络任务的操作,当任务开始时,我想将NetworkActivityIndicatorVisible设置为YES,当任务完成时,将其设置为NO。我是否必须始终在主线程中调用它,或者我可以在当前运行循环线程中调用它?
谢谢
【问题讨论】:
标签: objective-c ios nsoperation nsoperationqueue
一般来说,UIKit 不是线程安全的。虽然您可能能够“摆脱”某些事情,但您应该始终在主线程上做 UIKit 的事情。有一些有据可查的例外情况。
从后台线程执行此操作的模式很简单。
dispatch_async(dispatch_get_main_queue(), ^{
// Put any code you want to execute in the main thread here.
});
您传递给 dispatch_async 的块内的代码将被安排在主运行循环中运行。
【讨论】: