0
爲什麼需要代碼if (dispatch_get_current_queue() == socketQueue)
?爲什麼我們不能直接使用dispatch_sync(socketQueue, block)
?關於調用dispatch_queue_t和dispatch_sync
在此先感謝!
- (BOOL)isConnected
{
__block BOOL result = NO;
dispatch_block_t block = ^{
result = (flags & kConnected) ? YES : NO;
};
if (dispatch_get_current_queue() == socketQueue)
block();
else
dispatch_sync(socketQueue, block);
return result;
}
BTW,代碼是從XMPPFramework
嗨史文,再見。 有點不清楚。 dispatch_async怎麼樣,如果block改變了__block的值,怎麼可能是async ??? – Henry