gpt4 book ai didi

ios - main_queue 上的 dispatch_async?

转载 作者:IT王子 更新时间:2023-10-29 07:49:47 27 4
gpt4 key购买 nike

我看过这段代码:

dispatch_async(dispatch_get_main_queue(), ^{
[self doSomeNetworkStuff];
});

这对我来说似乎没有多大意义。

编辑:澄清我的问题的条件:

  • dispatch_async 的调用是从主线程执行的。
  • 发送的消息 doSomeNetworkStuff 是繁重的 worker 任务。
  • ... 并且不仅仅是 UI 更新任务。

当然可以调度,但是使用主队列只会将调度的任务拉回 ui 线程并阻塞它。

拜托,我错过了什么吗?谢谢。

最佳答案

dispatch_async 让您的应用在多个队列上运行任务,因此您可以提高性能。但是与 UI 交互的一切都必须在主线程上运行。您可以在主线程外运行与 UI 无关的其他任务以提高性能。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

//Add some method process in global queue - normal for data processing

dispatch_async(dispatch_get_main_queue(), ^(){
//Add method, task you want perform on mainQueue
//Control UIView, IBOutlet all here

});

//Add some method process in global queue - normal for data processing

});

关于ios - main_queue 上的 dispatch_async?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15169925/

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