美文网首页
判断是否当前队列

判断是否当前队列

作者: 水水兔 | 来源:发表于2020-01-09 09:13 被阅读0次

今天在看SDWebImage时,发现一个宏dispatch_queue_async_safe

 dispatch_queue_async_safe(queue, block)\
    if (dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL) == dispatch_queue_get_label(queue)) {\
        block();\
    } else {\
        dispatch_async(queue, block);\
    }
  • dispatch_queue_get_label(dispatch_queue_t queue):返回队列的标签名,标签名在队列创建的时候会指定,如果创建时没有提供,此接口返回NULL。

  • strcmp(const char *s1, const char *s2) /** Explain: strcmp() 用来比较字符串(区分大小写)。 其原型为: int strcmp(const char *s1, const char *s2); 【返回值】: 若str1==str2,则返回零; 若str1<str2,则返回负数; 若str1>str2,则返回正数。 【参数】s1, s2 为需要比较的两个字符串。 【注意】:strcmp() 以二进制的方式进行比较,不会考虑多字节或宽字节字符;如果考虑到本地化的需求,请使用 [strcoll()](http://c.biancheng.net/cpp/html/163.html) 函数。 */

  • DISPATCH_CURRENT_QUEUE_LABEL 结合方法dispatch_queue_get_label 使用,将会得到当前队列标签名

通过此方式能判断,当前是否处于指定的队列中。

相关文章

网友评论

      本文标题:判断是否当前队列

      本文链接:https://www.haomeiwen.com/subject/idaeactx.html