使用异步模式(queue.BeginReceive、queue.EndReceive)进行 MSMQ 消息接收的反应式扩展 (Rx)

2023-11-24

我已经在我的项目中使用 Rx 进行事件有一段时间了,并且专门用于 Socket 编程,好的部分是它做得很好。管理我的代码、性能优势以及更好的执行和解释。

最近我必须修改我的项目的流程,我需要将所有传入数据(来自套接字操作)转储到队列中(使用决定排队的 MSMQ 实现).

由于 MSMQ 提供了异步调用来对队列中的消息进行排队(但以一种奇怪的模式)。 我现在一直在努力使用 Rx 来实现此目的,但可以这样做。

问题:有人可以给我一个干净的代码示例来实现使用异步模式从队列接收消息的 Rx 吗?

我需要类似于这样的 MSMQ 异步运算符实现

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

提前致谢。*cheers*到 Rx 和 .NET


它会很简单:

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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用异步模式(queue.BeginReceive、queue.EndReceive)进行 MSMQ 消息接收的反应式扩展 (Rx) 的相关文章

随机推荐