Rec*_*ner 5 nsoperationqueue swiftui combine
随着combine框架的到来,是不是还需要用到操作队列呢?例如,苹果在 WWDC 应用程序中几乎无处不在地使用操作队列。那么如果我们使用 SwiftUI 和 combine(异步编程),是否需要使用操作队列?
Rob*_*Rob 10
组合只是另一种异步模式,但不会取代操作队列(或调度队列)。正如 GCD 和操作队列在我们的代码库中愉快地共存一样,Combine 也是如此。
GCD 非常擅长编写易于编写但仍然具有高性能的代码来将任务分派到各种队列。因此,如果您有一些可能会阻塞主线程的风险,GCD 可以很容易地将其分派到后台线程,然后将一些完成块分派回主线程。它还处理后台线程上的计时器、数据同步、高度优化的并行代码等。
操作队列非常适合更高级别的任务(尤其是那些本身是异步的)。您可以处理这些工作,将它们包装在离散对象中(为了很好地分离职责),操作队列非常优雅地管理执行、取消和约束并发。
Combine 擅长编写简洁的、声明性的、可组合的、异步事件处理代码。例如,它擅长编写概述 UI 应如何反映某些事件(网络任务、通知,甚至 UI 更新)的代码。
这显然过于简单化,但这些是各种框架的一些优势。这三个框架肯定有重叠,当然,但每个都有自己的位置。
| 归档时间: |
|
| 查看次数: |
947 次 |
| 最近记录: |