【发布时间】:2016-08-09 20:59:02
【问题描述】:
我在我的应用程序中添加了一个新的数据加载功能。它旨在将大型数据库的内容从移动设备传输和处理到后端。在我在这个管道中运行的任何函数中,函数的全部内容都在一个
dispatch_async
这将分派到非主线程。我还通过日志验证了这些是否有效。管道中的每个函数都脱离了主线程。然而,我正在经历 UI 冻结。
问题:
- 找出主线程上的内容以及它正在做什么/等待什么的最佳方法是什么?
- 是否有可能让非主线程做这么多实际上影响主线程的事情?
【问题讨论】:
-
仅供参考 -
dispatch_async不保证后台队列。它使用你传入的任何队列。使用一些相关代码更新您的问题。 -
@rmaddy - 你是对的,当然。我们需要更多的继续。但在他的辩护中,他确实说他正在分派到一个“非主线程”[原文如此]。
-
@Rob OP 并没有说“他”正在分派到“非主线程”。 OP 声明
dispatch_async调度到“非主线程”。因此,我原来的评论。 -
@rmaddy - 没关系。但是,如果他将一些缓慢而耗时的东西发送到主队列并想知道为什么应用程序没有响应,我会感到惊讶。但你的观点被采纳了。
-
底线是检查你是否不小心在主线程中调度了一些繁重的处理器密集型操作。
标签: ios objective-c