Reactive Extensions (Rx) is a library to compose asynchronous and event-based applications. The results of certain asynchronous operations can be communicated through events by "observable" objects. Results in Rx are generally a sequence of values.
Rx provides a push-based model that more closely models asynchronous operation than a pull model. "Reactive" is used because something that observes push notifications is "reacting" to notifications. This is done through subscription to notifications.
Rx builds its push model on IObservable<T>
and IObserver<T>
. An IObservable<T>
is something that can be observed by an IObserver<T>
. The sequence of values is observed through IObserver<T>.OnNext()
. An optional signaling of completion is observed through IObserver<T>.OnCompleted(). IObservable<T>
is often compared to IEnumerable<T>
because they both deal with a sequence of values.
IObservable<T>
and IObserver<T>
are...