gpt4 book ai didi

ios - Grand central dispatch,QOS 用户交互 vs get main queue

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:26 25 4
gpt4 key购买 nike

我正在做一个关于 grand central dispatch 的教程。本质上,讲师在闭包内有一些代码,这些代码是长时间运行的任务,因此他将所有代码都放在后台队列中(代码太长而无法编写,没有提供源代码)。简而言之,他有这种格式

dispatch_async(QOS_CLASS_BACKGROUND,  {
//time consuming tasks which should not be on main queue
})

但是在所有内容都在后台队列中的闭包内,有一些代码可以更新用户界面。我被教导(主要是 udacity),所有 UI 更新都应该在主队列中。因此

dispatch_async(dispatch_get_main_queue(), ...

虽然讲师,反而用过

dispatch_get_global_queue(QOS_CLASS_USER_INTERACTIVE, 0), {...}

我知道这是合适的,因为 QOS_CLASS_USER_INTERACTIVE 用于与用户界面相关联的即时任务。但是,与 get_main_queue 相比,使用它有什么优势?

最佳答案

dispatch_get_global_queue(QOS_CLASS_USER_INTERACTIVE, 0) 返回一个全局并发适用于需要“快速”完成以更新的任务的队列用户界面。此队列上的任务具有比例如更高的优先级。上的任务 QOS_CLASS_BACKGROUND 队列。但这不是主队列。

UI 更新本身必须在您获得的主队列上完成dispatch_get_main_queue()

关于ios - Grand central dispatch,QOS 用户交互 vs get main queue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39161455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com