繁体   English   中英

如何检查dispatch_async队列状态?

[英]How to check dispatch_async queue status?

在典型的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是否有用?

使用串行调度队列一次执行一项任务

http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html

像这样

 dispatch_queue_t myQueue;
 myQueue = dispatch_queue_create("myQueue", NULL);
 dispatch_async(myQueue, block);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM