我只想确认我的理由,即使用主队列从UI线程(主线程)执行dispatch_sync是完全没用的。
除此之外,async也同样没用,但是它有用,因为它不会阻塞。
让我知道。
由于
答案 0 :(得分:3)
dispatch_sync
到同一个队列不仅无用,而且会锁定您的应用。 dispatch_sync
表示“发送一些内容,但在另一个队列响应之前不要继续执行此队列”。如果“其他”队列(我们正在等待它完成调度的块)与“this”队列相同(在其他队列响应之前被阻塞),这显然不会发生。你的应用会冻结,等待自己!
另一方面,dispatch_async
到你当前所在的同一队列通常不是一个非常有用的结构,但至少它不会冻结。我已经看到一些笨拙的代码使用dispatch_async
作为一种说法,“一旦我完成了一系列的操作,我就想做其他事情”。我很少看到这种异步调度在另一种方式无法更优雅地完成的情况下,但我已经看到了它。