IObservable とプレーンイベント、または IObservable を使用する理由は何ですか? 質問する

IObservable とプレーンイベント、または IObservable を使用する理由は何ですか? 質問する

マイクロソフトは、IObservable<T>インターフェース.NET Framework 4 の BCL に興味を持ち、「すばらしい、ついにこれを使わなければならない」と思ったので、徹底的に調べて投稿やドキュメントを読み、パターンを実装しました。

そうした後、基本的な実装では、実際にはすべてのTイベントがフィルタリングなしですべてのサブスクライバーに送信されていることに気付きました。つまり、プレーン ブロードキャストです。どこかで、Observable パターンはプレーン ブロードキャスト用であると読みました。これは真実ではなく、何かを見落としているような気がします。

私の質問:

  1. フィルタリング メカニズムを追加する場合、Observable パターンを使用する場合と単純な CLR イベントを使用する場合の違いは何ですか?

  2. このパターンはいつ使用すべきでしょうか、また、プレーンな CLR イベントの使用を選択すべきなのはいつでしょうか?

  3. Observable パターンの主な利点は何ですか?

ベストアンサー1

観察可能は、RxライブラリIObservable<T>。 は、必要な実装と演算子のほとんどすべてを提供します。との背後にある考え方は、Rxイベントの「処理」だけではなく、「LINQ to Events」を有効にすることです。そのため、「イベント ストリーム」を簡単に作成でき、通常のイベント処理に比べて非常に強力になります。

のサンプルMSDN実装はIObservable<T>正しくない; ドキュメント チームに通知されました。

おすすめ記事