我刚刚开始在 iOS 上工作,并且一直在浏览 GCD 上的 Apple 参考资料。dispatch_get_global _queue
返回一个并发队列,可以向该队列提交要执行的块。
但是,我们也可以使用同样的方法dispatch_get_main_queue
,对吗?dispatch_get_global_queue
那么和之间究竟有什么区别dispatch_get_main_queue
呢?
我刚刚开始在 iOS 上工作,并且一直在浏览 GCD 上的 Apple 参考资料。dispatch_get_global _queue
返回一个并发队列,可以向该队列提交要执行的块。
但是,我们也可以使用同样的方法dispatch_get_main_queue
,对吗?dispatch_get_global_queue
那么和之间究竟有什么区别dispatch_get_main_queue
呢?
全局队列是一个后台队列,在非主线程上执行它的块。主队列在主线程上执行其块。
您应该将不涉及更改用户界面的后台工作放在全局队列中,但在块对用户界面进行更改时使用主队列。例如,一种非常常见的模式是在全局队列上执行“工作”块,并让工作块本身分派回主队列以更新进度指示器。
dispatch_get_main_queue
- 当您想要操作 UI 元素时应该使用。(它有一个后台队列,您可以调度异步运行的后台任务......它不会阻塞您的用户界面)
dispatch_get_global_queue
- 可用于网络调用/核心数据。