1. 程式人生 > >有意思 SDWebImage 有兩個巨集 來判斷程式在主執行緒執行

有意思 SDWebImage 有兩個巨集 來判斷程式在主執行緒執行

#define dispatch_main_sync_safe(block)\

    if ([NSThread isMainThread]) {\

        block();\

    } else {\

        dispatch_sync(dispatch_get_main_queue(), block);\

    }

#define dispatch_main_async_safe(block)\

    if ([NSThread isMainThread]) {\

        block();\

    } else {\

        dispatch_async(dispatch_get_main_queue(), block);\

    }

使用:

dispatch_main_async_safe((^{

self.headIcon.image = [UIImage imagenamed:fsf];

            }));