所以,如果我要做一些繁重的事情,然后更新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()
}
}发布于 2018-03-24 02:17:25
是的,这是避免阻塞主线程的方法之一,但是还有许多其他选择,比如使用DispatchGroup链接异步任务,OperationQueue,甚至创建自己的队列,在其中做大量工作并将UI内容传递给主线程,但是要记住全局队列只是一个队列,如果您发现对它有很多调用,最好创建一个新的助手-- one
https://stackoverflow.com/questions/49460531
复制相似问题