在典型的dispatch_async
执行中:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
// ...
dispatch_async(dispatch_get_main_queue(), ^{
// ...
});
});
要限制只有一个块运行:
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
在这种情况下有用吗?
答案 0 :(得分:-1)
使用Serial Dispatch Queues一次执行一项任务
喜欢这个
dispatch_queue_t myQueue;
myQueue = dispatch_queue_create("myQueue", NULL);
dispatch_async(myQueue, block);