C# Packages

System.Reactive

Rx, Reaqtive, Reaqtor

Delegate based:

Expression-tree based:

interface IObserver<T>
{
    void OnNext(T v);
    void OnCompleted();
    void OnError();
}

When you subscribe to an IObservable<T> it returns an IDisposable, and you can unsubscribe by calling Dispose.

Reaqtive also adds:

References

https://reaqtive.net/blog/2021/05/sequences-linq-rx-reaqtor-part-06-reaqtor