disp语句中的dispatch_async有什么区别

dob*_*iho 2 iphone grand-central-dispatch ios objective-c-blocks dispatch-async

我想知道dispatch_async在下面用'A'和'B'表示的方法之间有什么区别.

A

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

B

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

        // do something

    });
}
Run Code Online (Sandbox Code Playgroud)

Cal*_*leb 6

语句A导致一个新任务,恰好包含一个循环.

语句B导致10个新任务,其中一些或全部任务可能在for循环完成之后才能完成.