4

我刚刚开始在 iOS 上工作,并且一直在浏览 GCD 上的 Apple 参考资料。dispatch_get_global _queue返回一个并发队列,可以向该队列提交要执行的块。

但是,我们也可以使用同样的方法dispatch_get_main_queue,对吗?dispatch_get_global_queue那么和之间究竟有什么区别dispatch_get_main_queue呢?

4

2 回答 2

9

全局队列是一个后台队列,在非主线程上执行它的块。主队列在主线程上执行其块。

您应该将不涉及更改用户界面的后台工作放在全局队列中,但在块对用户界面进行更改时使用主队列。例如,一种非常常见的模式是在全局队列上执行“工作”块,并让工作块本身分派回主队列以更新进度指示器。

于 2013-06-27T19:45:00.127 回答
4

dispatch_get_main_queue- 当您想要操作 UI 元素时应该使用。(它有一个后台队列,您可以调度异步运行的后台任务......它不会阻塞您的用户界面)

dispatch_get_global_queue- 可用于网络调用/核心数据。

于 2013-06-27T19:47:56.223 回答