1

我只是想确认我的推理,即使用主队列从 UI 线程(主线程)执行 dispatch_sync 是完全没用的。

更重要的是,异步将同样无用,但会产生一种错觉,即它之所以有用,是因为它不会阻塞。

让我知道。

谢谢

4

1 回答 1

3

到同dispatch_sync一个队列不仅没用,而且会锁定你的应用程序。dispatch_sync说“调度一些东西,但在另一个队列响应之前不要继续这个队列”。如果“其他”队列(我们正在等待它完成分派的块)与“这个”队列(在其他队列响应之前被阻塞)相同,这显然不会发生。您的应用程序将冻结,等待自己!

另一方面,dispatch_async到您当前所在的同一个队列通常不是一个非常有用的结构,但至少它不会冻结。我见过一些笨拙的代码,它们习惯于dispatch_async说“一旦我完成了一系列动作,我就想做其他事情”。在无法以另一种方式更优雅地完成的情况下,我很少看到这种异步调度,但我已经看到了。

于 2012-12-09T03:29:36.367 回答