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

标签 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()
    }
}

最佳答案

是的,这是您可以用来避免阻塞主线程的方法之一,但还有许多其他选择,例如使用 DispatchGroup 链接异步任务,OperationQueue甚至创建自己的队列并在其中做繁重的工作并将 UI 的东西交给主线程,但要记住全局队列只是一个队列,如果你发现有很多调用它,最好创建一个新的 helper

关于ios/swift 调度队列 - 全局和主队列概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49460531/

相关文章:

iOS:方法在设备上的测试速度比模拟器慢 25 倍

ios - navigator.notification.alert 不适用于 ios 的 cordova

ios - 使用 swift 4 请求 WKWebView 中的库权限

swift - 将底部 anchor 约束更改为距离底部 50 像素

ios - swift 中的可选与 objective-c 中的 nil 指针有何不同?

iOS 在不离开应用程序的情况下打开 url

ios - 在 iOS 中加载应用程序之前如何为 uiviewcontroller 设置颜色?

ios - 信号量不等待 ALAssetsLibrary writeImageToSavedPhotosAlbum 方法完成

ios - sleep NSThread 与。 GCD 调度后

objective-c - 我可以将 dispatch_once_t 谓词声明为成员变量而不是静态的吗?