5

我想知道 AppDelegate 是否是线程安全的?我目前有一个在辅助线程上运行网络任务的操作,当任务开始时,我想设置NetworkActivityIndicatorVisibleYES,当任务完成时,将其设置为NO。我是否必须始终在主线程中调用它,或者我可以在当前运行循环线程中调用它?

谢谢

4

1 回答 1

8

一般来说,UIKit 不是线程安全的。虽然您可能能够“摆脱”某些事情,但您应该始终在主线程上做 UIKit 的事情。有一些有据可查的例外。

从后台线程执行此操作的模式很简单。

dispatch_async(dispatch_get_main_queue(), ^{
    // Put any code you want to execute in the main thread here.
});

您传递给 dispatch_async 的块内的代码将被安排在主运行循环中运行。

于 2012-08-03T18:04:59.523 回答