在我的应用程序中,我需要解析将直接用于渲染屏幕的一部分的响应。反响很大,因为它还包含其他内容。因为,我不想在主线程上进行此解析以避免引起问题,但我确实需要立即解析此响应(从压缩格式),以便我可以做出决定并快速显示预期的 UI。在这种情况下,使用是否可以
DispatchQueue.global(qos: .userInteractive // .userInitiated)
异步但快速地实现这一点?这样做时我应该注意什么吗?有什么风险吗?
谢谢
这样做时有什么需要注意的吗?有什么风险吗?
不。这正是
.userInitiated
的意思。而且您是在后台执行此操作,因此主线程(界面)不会受到阻碍。
事实上,恰恰相反,为了获得最佳响应,我建议使用您自己创建的专用 DispatchQueue,而不是全局 DispatchQueue,因为它是并发的,并且可能正在执行其他操作,这会减慢您的速度。
(更好的是采用 Swift Concurrency 并将这项工作放在 Actor 中。)