ios / swift调度队列 - 全局和主队列概念

时间:2018-03-24 02:09:01

标签: ios swift grand-central-dispatch

因此,如果我要做一些沉重的事情,然后更新UI,这会是最好的方法吗?

DispatchQueue.global().async {
    // Do something heavy here, such as adding 10000 objects to an array

    DispatchQueue.main.async {
        // Update UI here after the heavy lifting is finished, such as tableView.reloadData()
    }
}

1 个答案:

答案 0 :(得分:4)

是的,这可以用来避免阻塞主线程的方法之一,但还有许多其他选择,例如使用DispatchGroup来链接异步任务,OperationQueue甚至创建自己的队列在内部做大量工作并将UI事务交给主线程,但要记住全局队列只有一个队列,如果你发现它有很多调用,那么创建一个新的队列会更好帮助者