39

I am wondering what do the new C# 5.0 asynchronous features mean for Rx - Reactive Extensions? It seems to be not a replacement but they seem to overlap - Task and IObservable.

Michael Phillips
  • 862
  • 2
  • 7
  • 17
Mikhail Poda
  • 5,742
  • 3
  • 39
  • 52
  • 11
    "Async/await" is not a replacement for Rx any more than LINQ was a replacement for SQL. You can use LINQ to talk to a SQL back end; you can use task-based asynchrony with Rx to orchestrate work triggered by streams of events. These technologies should enhance each other, not compete. – Eric Lippert Oct 31 '10 at 15:02

2 Answers2

18

Check also: TPL Dataflow Overview about TDF and Rx:

Astute readers may notice some similarities between TPL Dataflow and Reactive Extensions (Rx), currently available as a download from the DevLabs prototypes site. Rx is predominantly focused on coordination and composition of event streams with a LINQ-based API, providing a rich set of combinators for manipulating IObservables of data. In contrast, TPL Dataflow is focused on providing building blocks for message passing and parallelizing CPU- and I/O-intensive applications with high-throughput and low-latency, while also providing developers explicit control over how data is buffered and moves about the system. As such, Rx and TPL Dataflow, while potentially viewed as similar at a 30,000 foot level, address distinct needs. Even so, TPL Dataflow and Rx provide a better together story.

Nick Martyshchenko
  • 4,231
  • 2
  • 20
  • 24
13

Jeff writes on the Rx forum that Rx will still be used to orchestrate multiple event driven tasks, Rx has release a new version that includes IAsyncEnumerable to use the new async features in Rx.

Albin Sunnanbo
  • 46,430
  • 8
  • 69
  • 108
  • 1
    +1 Also, Bart De Smet talked a little bit about async and Rx (mentioning IAsyncEnumerable) in his PDC talk "LINQ, Take Two" http://player.microsoftpdc.com/ – Gabe Moothart Nov 01 '10 at 17:18