我只想确认我的理由,即使用主队列从UI线程(主线程)执行dispatch_sync完全没有用。
除此之外,异步将是无用的,但有一种幻想,即它不会阻塞,因此很有用。
让我知道。
谢谢
最佳答案
同一队列中的dispatch_sync
不仅无用,而且会锁定您的应用程序。 dispatch_sync
说:“调度一些东西,但是在另一个队列响应之前,不要在该队列上继续进行”。如果“其他”队列(我们正在等待它完成调度的块)与“此”队列(直到其他队列响应才被阻塞)相同,则显然不会发生这种情况。您的应用程序将冻结,等待自身!
另一方面,将dispatch_async
放在您当前所在的队列中通常不是非常有用的构造,但至少不会冻结。我已经看到了一些尴尬的代码,这些代码本身使用了dispatch_async
来表示“一旦完成一系列操作,我便想做其他事情”。在无法用另一种方式优雅地完成调度的情况下,我很少见到这种异步调度的方法,但是我已经看到了。
关于objective-c - 使用主线程的队列从主线程Dispatch_sync没用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13784248/