我有四个操作要做如下
- 启动活动指示器。
- 做一些计算。(在 bg 线程中)
- 将结果保存在 xml 中。(在 bg 线程中)
- 停止活动指示器。
现在我在 GCD 中做这些操作如下。
[self showAlert];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
[self calculateValues];
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
[utility createXMLWithName:name];
dispatch_sync(dispatch_get_main_queue(), ^{
[self hideAlert];
});
});
});
我想确认这是在 GCD 中执行此操作的正确方法吗?我需要 bg 中的任务 2 和 3,并且任务 3 应该仅在任务 2 完成后发生。为此,我将任务 2 和 3 放在单独的队列中。