5

キュー (具体的には ConcurrentQueue として) を IObservable のソースとして使用できるかどうか疑問に思いましたか? 何かのようなもの;

  Queue = new ConcurrentQueue<IMessage>();
  var xs = Queue.AsEnumerable().ToObservable();

  xs.Subscribe((IMessage msg) =>
     {
        Console.WriteLine("Msg :" + msg.subject);
     });

何もデキューされていないので、本当に意味がないと思います。オブザーバーにプッシュされる「メッセージ」をサブスクライブできるノンブロッキングプロセスを実装しようとしているため、キューを使用しています。RXでこれを行うことができるはずだと確信していますが、頭が回らないようです!

これをどのように実装できるかについての提案に興味があります。ありがとう!

4

1 に答える 1

3

そうです、キューを変換すると (同時実行か単純かは関係ありません)、列挙されるだけで、キューから取り出されません。「実際の」実装は可能ですが、より複雑です - RX フォーラムで私が尋ねた同様の質問へのリンクを参照してください (これは、StackOverflow と比較して RX に関するより良い情報源です)。

RX を使用して単一のワーカー コンシューマー プロデューサー キューを実装する方法は?

于 2010-02-15T08:20:37.613 に答える