典型的dispatch_async
执行:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
// ...
dispatch_async(dispatch_get_main_queue(), ^{
// ...
});
});
限制只有一个block在运行:
if (_loadingFromServer) return;
_loadingFromServer = YES;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
// ...
dispatch_async(dispatch_get_main_queue(), ^{
// ...
_loadingFromServer = NO;
});
});
是否有一种方法来检查异步块在哪里运行,没有使用_loadingFromServer
标志?
dispatch_queue_set_specific
在这种情况下有用吗?
使用串行调度队列一次执行一个任务
http://developer.apple.com/library/ios/文档/一般/概念/ConcurrencyProgrammingGuide/OperationQueues OperationQueues.html
这样的 dispatch_queue_t myQueue;
myQueue = dispatch_queue_create("myQueue", NULL);
dispatch_async(myQueue, block);