Reactive Extension 4.0 released

still waiting for Async-Rx

Rx 4.0 was released but it seems that the current version is still focusing on .NET-Core /.NET Standard support and internal improvements (like reducing locks).

Async Rx

The best part seems to be hanging until the C#8 (async streams) time-frame.

At this time-frame we expected to see major shift in the RX library aiming brand new async contracts.

The most fundamental interface is about to changed (in order to enable true async operators).

IObservable → IAsyncObservable
IObserver → IAsyncObserver
IDisposable → IAsyncDisposable

The heart of the transition is lying on IAsyncObserver

IAsyncObservable will simply get IAsyncObserver and returns IAsyncDisposable.

All 3 methods will return Task. this means that the Action of OnNextAsync can use the async / await pattern.

On this foundation we can dramatically improve the framework and totally take out all the internal locks.