The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators. Using Rx, developers represent asynchronous data streams with Observables, query asynchronous data streams using LINQ operators, and parameterize the concurrency in the asynchronous data streams using Schedulers. Simply put, Rx = Observables + LINQ + Schedulers.
Rx complements and interoperates smoothly with both synchronous data streams (IEnumerable<T>) and single-value asynchronous computations (Task<T>) as the following diagram shows:
Single return value |
Multiple return values |
|
Pull/Synchronous/Interactive |
T |
IEnumerable<T> |
Push/Asynchronous/Reactive |
Task<T> |
IObservable<T>
|
https://archive.codeplex.com/?p=rx