iphone - dispatch_async 是否在 for 语句中有什么区别

标签 iphone ios objective-c-blocks grand-central-dispatch dispatch-async

我想知道在以下表示为“A”和“B”的方法中使用 dispatch_async 之间有什么区别。

A

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    for (int i = 0; i < 10; i++)
    {
        // do something
    }
});

B

for (int i = 0; i < 10; i++)
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        // do something

    });
}

最佳答案

语句 A 产生一个新任务,它恰好包含一个循环。

语句 B 产生 10 个新任务,其中部分或全部任务可能要等到 for 循环完成后才能完成。

关于iphone - dispatch_async 是否在 for 语句中有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984032/

相关文章:

ios - 为什么 View 即使在我的线程上也没有更新?

iphone - 使iOS block 同步执行

ios - Swift Charts - 明确识别特定条目

iphone - 我们在 iPhone 中有图像捕获事件的通知吗?

ios - UILabel 在 animateWithDuration 之后消失

ios - 无法在 Xcode 10.2 的模拟器上运行 iOS 应用程序

ios - 如何删除核心数据中的对象

ios - 如何在 Swift 中将新单元格插入 UITableView

ios - 适用于 iOS 的 Google map - 如何判断标记是否在屏幕范围内?

objective-c - 这个插入符 ^ 语法,两边都有 void 是什么意思?