49

Microsoftは .NET Framework 4 で BCL へのIObservable<T>インターフェイスを導入しました。そこで私は深く掘り下げて投稿やドキュメントを読み、パターンを実装することさえしました。

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

私の質問:

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

  2. いつこのパターンを使用する必要があり、いつプレーンな CLR イベントを使用することを選択する必要がありますか?

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

4

1 に答える 1

31

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

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

于 2010-07-06T14:17:28.267 に答える