2

Rx を使用して pub/sub パターン (つまり、次の要素がプロデューサーによって公開される古典的なオブザーバー パターン) からシーケンスを作成することを評価しようとしています。これは基本的に .net イベントと同じですが、イベントを持つことが必須ではないように一般化する必要があるため、Observable.FromEvent を利用することはできません。Observable.Create と Observable.Generate をいじってみたところ、pub/sub を処理するコードを書かなければならなくなりました (つまり、発行されたアイテムを隠して、それを消費するためにプロデューサー/コンシューマー コードを書かなければなりません)。 IObserver.OnNext() を呼び出して)、Rx を実際に利用していないようです...

私は正しい道を見下ろしていますか、それともこれはRxに適していますか?

ありがとう

4

2 に答える 2

2

RX の使用は、pub/sub に適しています。IObservableRXを使用した最も単純な pub/sub パターンを示すデモを次に示します。

NuGet を使用して Reactive Extensions (RX) をプロジェクトに追加し、 を検索しrx-mainてインストールしReactive Extensions - Main Libraryます。

using System;
using System.Reactive.Subjects;

namespace RX_2
{
    public static class Program
    {
        static void Main(string[] args)
        {
            Subject<int> stream = new Subject<int>();

            stream.Subscribe(
                o =>
                {
                    Console.Write(o);
                });

            stream.Subscribe(
                o =>
                {
                    Console.Write(o);
                });

            for (int i = 0; i < 5; i++)
            {
                stream.OnNext(i);
            }

            Console.ReadKey();
        }
    }
}

実行すると、コードは次のように出力します。

0011223344
于 2014-08-20T11:14:02.177 に答える