我一起提出三个async
个请求,所有这些请求都需要等待才能继续前进。
我已阅读以下内容以同步异步请求
Waiting until two async blocks are executed before starting another block
dispatch_group_async(group, queue, ^ {
...
});
运行任务异步。但我的任务本身是async
,它会调用回调处理程序。
那么,什么时候我的任务会在dispatch_group_async
的上下文中声明完成?
当我的回调被执行时,它会被调用吗?
如果您能提供将要发生的事件序列,那么我的任务将被宣布完成将非常有帮助
答案 0 :(得分:1)
如果你发送一个异步任务,比如“任务B”,在dispatch_group_async
内,说“任务A”,那么任务A一旦到达任务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);
即使任务B / C / D可能仍在运行,dispatch_group_wait
将在最终dispatch_async_group
块完成后立即返回。
如果对B / C / D任务使用同步调度,则在B,C和C之后,您的调度组将被视为完成。 D完成。