iOS 在主线程上执行

示例

当异步执行任务时,通常需要确保在主线程上运行一段代码。例如,您可能要异步访问REST API,但将结果放在屏幕上的UILabel中。在更新UILabel之前,必须确保您的代码在主线程上运行:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //执行昂贵的任务
    //...

    //现在,在更新UI之前,确保我们回到主线程上
    dispatch_async(dispatch_get_main_queue(), ^{
       label.text= //....
    });
}

每当您更新屏幕上的视图时,请始终确保您正在主线程上执行此操作,否则可能会发生未定义的行为。