美文网首页
SDWebImage语法糖之dispatch_main_asyn

SDWebImage语法糖之dispatch_main_asyn

作者: 认不出我来 | 来源:发表于2018-06-06 12:31 被阅读0次
#ifndef dispatch_main_async_safe
#define dispatch_main_async_safe(block)\
    if (strcmp(dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL), dispatch_queue_get_label(dispatch_get_main_queue())) == 0) {\
        block();\
    } else {\
        dispatch_async(dispatch_get_main_queue(), block);\
    }
#endif

dispatch_queue_get_label用来取队列的名字,进而判断如果当前已经是主队列,那么直接执行,否则回调到主队列之后再执行。

如果当前队列已经是主队列了,那么在调用dispatch_async(dispatch_get_main_queue(), block)有可能会出现crash。

相关文章

网友评论

      本文标题:SDWebImage语法糖之dispatch_main_asyn

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