相关疑难解决方法(0)

System.Messaging - 为什么MessageQueue不提供异步版本的Send

有谁知道为什么System.Messaging没有提供Send方法的异步版本来向队列发送MSMQ消息.

实际上有Peek和Receive方法的异步版本(通过Begin/End对可以转换为C#5 async awaitable方法),但是很明显没有提供BeginSend/EndSend方法,只是一个发送方法,在我看来像这是一个同步阻塞I/O调用.

我认为这不是System.Messaging的限制,而是System.Messaging正在使用的本机消息队列API(mqrt.dll)之一,它将重叠结构作为函数中的参数MQReceiveMessage使用与IOCP重叠I/O,虽然函数MQsendMessage不采用这种结构,所以看起来它是纯粹的同步调用.

我的问题仍然存在,任何人都会知道为什么MessageQueue API不提供将消息发送到队列的异步方式?

c# msmq async-await

5
推荐指数
1
解决办法
888
查看次数

标签 统计

async-await ×1

c# ×1

msmq ×1