As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center作为指导。
6年前关闭。
几个月前,我们将Rx引入我们的代码库,从那时起,代码库变得越来越“活跃”。我觉得使用Rx将并发引入代码库确实很容易,因为尚未使用任何一行“锁定”。
但是,当我无法用语言解释时,我不明白为什么Rx这么简单。
它与"Actor Model"和"Functional Reactive Programming"概念有关吗?
有人可以请我启发一下吗?
6年前关闭。
几个月前,我们将Rx引入我们的代码库,从那时起,代码库变得越来越“活跃”。我觉得使用Rx将并发引入代码库确实很容易,因为尚未使用任何一行“锁定”。
但是,当我无法用语言解释时,我不明白为什么Rx这么简单。
它与"Actor Model"和"Functional Reactive Programming"概念有关吗?
有人可以请我启发一下吗?
最佳答案
我认为它之所以“简单”,主要是因为MS背后非常聪明的开发团队将鲜血,汗水和眼泪注入Rx库。
查看(开放的)源代码,以了解执行Rx语法和使用Scheduler运行何时何地的参数化需要花费多少精力。里面有很多防御性的并发代码。我建议是语法和调度程序带来了简单性。
使用该模型非常容易,但是实现这种简单并非易事。您将从站在已经隐藏了整洁API背后的复杂性的巨人的肩膀中受益:)
顺便说一句,仍然有一个陷阱让您陷入...我相信您迟早会找到一个陷阱!一个示例是,出于性能原因,Rx 2.x中没有保护Subject .OnNext()防止并发访问。
关于c# - 为什么使用Rx处理并发如此简单? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17039673/
10-13 07:52