因此,如果我要做一些繁重的事情,然后更新 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()
}
}
最佳答案
是的,这是您可以用来避免阻塞主线程的方法之一,但还有许多其他选择,例如使用 DispatchGroup
链接异步任务,OperationQueue
甚至创建自己的队列并在其中做繁重的工作并将 UI 的东西交给主线程,但要记住全局队列只是一个队列,如果你发现有很多调用它,最好创建一个新的 helper
关于ios/swift 调度队列 - 全局和主队列概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49460531/