几个月前,我们将 Rx 引入我们的代码库,从那时起,代码库变得越来越“被动”。我觉得使用 Rx 将并发性引入代码库真的很容易,因为还没有使用任何一行“锁定”。
但是,当我无法用语言解释时,我不明白为什么使用 Rx 很容易。
是否与“Actor Model”和“Functional Reactive Programming”概念有关?
有人可以请教我吗?
几个月前,我们将 Rx 引入我们的代码库,从那时起,代码库变得越来越“被动”。我觉得使用 Rx 将并发性引入代码库真的很容易,因为还没有使用任何一行“锁定”。
但是,当我无法用语言解释时,我不明白为什么使用 Rx 很容易。
是否与“Actor Model”和“Functional Reactive Programming”概念有关?
有人可以请教我吗?
我认为它“简单”的主要原因是因为 MS 背后非常聪明的开发团队为 Rx 库倾注了鲜血、汗水和泪水。
查看(开放)源代码,看看代码在执行 Rx 语法和使用调度程序运行的时间和地点的参数化方面有多么谨慎。里面有很多防御性的并发代码。我建议是语法和调度程序带来了简单性。
使用该模型非常容易,但实现这种简单性并非易事。站在巨人的肩膀上,您将从中受益,这些巨人隐藏了整洁 API 背后的复杂性 :)
顺便说一句,还有一个奇怪的陷阱让你陷入……我相信你迟早会找到一个!一个例子是 Subject<T>.OnNext() 出于性能原因在 Rx 2.x 中不受并发访问保护。