監視する方がIObserver<T>ならば、監視される方はIObservabler<T>。
https://docs.microsoft.com/ja-jp/dotnet/api/system.iobservable-1?view=netframework-4.8
実装すべきインターフェースは、Subscribeだけであり、これでオブザーバーを登録するのだが、戻り値がIDisposableなのはなぜだろうか。
実は、戻り値を使って、オブザーバーリストから除外することが出来る。
IDisposableを実装したUnobserverDisposableという内部クラスを定義し、コンストラクタ引数でobserversとobserverをもらう。
Disposeでobserversからobserverを削除する。
そんなオブジェクトをSubscribeで戻り値として返してる。
真ん中にButton3。
Button3により、id1.Disposeが実行され、customObserver1の監視を止める。
こうだったり、
こうできるけど、
これを押してからだと、
2番しか来ない。
Sample/rx/IObservable_T/IObservable_T/src/IObservable_T at master · bg1bgst333/Sample · GitHub