我正在查看其他代码,发现了这个:
//Obj-C
if (dispatch_get_specific(moduleQueueTag))
block();
else
dispatch_sync(moduleQueue, block);
我正在尝试在Swift中做同样的事情。是否需要这样做:
if dispatch_get_specific(moduleQueueTag) != nil {
block()
} else {
dispatch_async(moduleQueue) {
block()
}
}
或者可以这样做:
dispatch_async(moduleQueue) {
block()
}
答案 0 :(得分:0)
不要从传递给函数调用的同一队列上执行的任务中调用dispatch_sync
函数。这样做会使队列死锁。如果需要dispatch
到当前队列,请使用dispatch_async
函数异步执行此操作。
另外,我按照您提供的链接和dispatch_sync
的说明我读了这个: