Reactive Framework与F#Events有何不同?

Rei*_*aka 11 f# reactive-programming

如果我已经熟悉F#事件,并且我不打算有太多的C#interop,是否有充分的理由考虑使用Reactive Framework?

Tom*_*cek 11

我认为有两个主要区别:

  • 首先,IEvent<'T>接口(和Event模块中的功能)和IObservable<'T>接口(由Observable模块和Reactive Fx的功能使用)之间存在差异.早先在SO上讨论了这种差异.

  • Reactive Framework是一个更复杂的库,因此它实现了许多在F#in ObservableEvent模块中不可用的组合器(尽管有一个开源项目可以添加许多组合)

总结是,您应该更喜欢Observable模块中的功能.如果它拥有您需要的一切,则不需要Reactive Framework.如果没有,那么你需要Reactive Framework或MiniRx(我相信,它有时也更高效).

F#Event模块可以追溯到2006年,所以我认为Reactive Framework明显受到了启发,但它并没有完全取代F#功能(主要是因为它不是.NET或F#核心的标准部分).

  • 说到开源实现,值得一提的还有FSharp.Reactive on GitHub,它以F#友好的方式包装了大多数(全部?)Rx扩展:https://github.com/panesofglass/FSharp.Reactive (5认同)