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

判断是否当前队列

作者: 水水兔 | 来源:发表于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