如何查看dispatch_async队列状态



典型的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);

最新更新