SDWebImage은 SDWebImageManager의 이미지 다운로드 코드에 다음 코드를 사용합니다. 스레드가 관계없이 dispatch_sync를 수행하는 대신 주 스레드인지 확인해야하는 이유는 무엇입니까? 블록 즉시 교착 현재 직렬 큐 결과 동기 급전dispatch_sync 전에 스레드가 주 스레드인지 확인해야하는 이유는 무엇입니까?
#define dispatch_main_sync_safe(block)\
if ([NSThread isMainThread])\
{\
block();\
}\
else\
{\
dispatch_sync(dispatch_get_main_queue(), block);\
}
아마도 그렇지 않습니다. – matt
@matt는 동기화 호출이기 때문에 중요합니다. Martin이 지적한 것처럼 메인 쓰레드에서 메인 쓰레드로'dispatch_sync'를하면 앱은 교착 상태가됩니다! – Rob
@ Rob 나는 그 생각을했지만 그때 그런 식으로 일어날 것이라고 믿을 수가 없었습니다 ... – matt