在跟着Rx.NET示例学习后,我对反应式扩展的概念和实现感到惊叹。它似乎为开发人员提供了一种更可维护的模式,以实现与.NET 4.0任务并行库相同类型的多线程并行编码。 Rx.NET会取代TPL吗?它应该吗?
简而言之,不行。任务并行库(TPL)提供了工作分配(并发)以及对更大的工作进行并行优化(并行),同时抽象了工作分配的实际机制(线程)。C#添加了"async"关键字来帮助从语言级别管理异步性。Rx已经更新以支持这个特性。Rx提供了一个框架来使用标准操作符组合和管理异步数据流。虽然在Rx中有一些调度程序的重叠,但这只是一种抽象。事实上,并行的推荐调度程序是TaskScheduler,它使用TPL。另请参见Rx论坛上Jeffrey van Gogh的回答相反的问题。此外,这个问题可能会有用。