在辅助线程中设置NetworkActivityIndi​​catorVisible值是否安全?

时间:2012-08-03 15:58:31

标签: objective-c ios nsoperation nsoperationqueue

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

由于

1 个答案:

答案 0 :(得分:7)

通常,UIKit不是线程安全的。虽然你可能能够“逃脱”某些事情,但你应该总是在主线程上做UIKit的东西。有一些记录良好的例外情况。

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

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

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