gpt4 book ai didi

ios - 此时,dispatch_group_async 会认为任务在执行带有回调的异步任务时已完成

转载 作者:行者123 更新时间:2023-11-29 02:15:18 25 4
gpt4 key购买 nike

  • 我一起发出了三个 async 请求,所有这些请求都需要等待,然后才能继续。

  • 我已阅读以下内容以同步异步请求

Waiting until two async blocks are executed before starting another block

dispatch_group_async(group, queue, ^ {
...
});

运行任务异步。但我的任务本身async,它会调用回调处理程序。

那么,什么时候我的任务会在dispatch_group_async的上下文中被声明为done

当我的回调被执行时,它会被称为 done 吗?

如果您能提供将发生的事件顺序,直到我的任务将被宣布完成,这将非常有帮助

最佳答案

如果您分派(dispatch)异步任务,请在dispatch_group_async内说“任务B” ,说“任务 A”,那么一旦到达任务 A block 的末尾,任务 A 将被视为完成,即使任务 B 可能仍在执行。

所以,给定

dispatch_async_group(group,queue, ^{ 
[someAsyncTask B];
});

dispatch_async_group(group,queue, ^{
[someAsyncTask C];
});

dispatch_async_group(group,queue, ^{
[someAsyncTask D];
});

dispatch_group_wait(group,10000);

dispatch_group_wait将在决赛后尽快返回 dispatch_async_group即使任务 B/C/D 可能仍在运行, block 也会完成执行。

如果您对任务 B/C/D 使用同步调度,那么您的调度组将在 B、C 和 D 完成后被视为完成。

关于ios - 此时,dispatch_group_async 会认为任务在执行带有回调的异步任务时已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824854/

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