10

私はしばらくの間、プロジェクトのイベントとソケットプログラミング専用にRxを使用してきましたが、良い部分はそれがうまく機能していることです。私のコードを管理し、パフォーマンスを向上させ、実行と解釈を大幅に改善します。

最近、プロジェクトのプロセスフローを変更する必要があります。この場合、(ソケット操作からの)すべての受信データをキューにダンプする必要があります(キューイング用に決定されたMSMQ実装を使用)。

MSMQは、キューからメッセージをデキューするための非同期呼び出しを提供します(ただし、奇妙なパターンで)。私は現在、この目的でRxを使用するのに苦労していますが、それを可能にします。

質問:非同期パターンを使用してキューからメッセージを受信するためのRxを実装するためのクリーンなコード例を教えてもらえますか?

このようなものに類似したMSMQの非同期演算子の実装が必要です

var data = Observable.FromAsyncPattern<byte[]>(
                        this.receiverSocket.BeginReceive,
                        this.receiverSocket.EndReceive(some parameters);

前もって感謝します。*歓声* Rxと.NETに

4

1 に答える 1

4

それは次のように簡単です:

var queue = new System.Messaging.MessageQueue("test");
var fun = Observable.FromAsyncPattern((cb, obj) => queue.BeginReceive(TimeSpan.FromMinutes(10),obj,cb), a => queue.EndReceive(a));
var obs = fun();
于 2011-11-05T09:27:13.920 に答える