我想知道为什么没有MSMQ发送的异步实现?我正在使用.net 4.5。我错过了什么吗?
答案 0 :(得分:2)
不需要Send
的异步版本,因为Send
是异步的。
来自MSDN
在消息队列中发送消息始终是异步的 操作。当您确定队列已打开时,您可以继续 发送消息而不停止等待回复。
当消息发送到远程计算机上的已打开队列时,消息>队列将消息存储在本地计算机上的传出队列中。
您是否遇到特定的性能问题,或者您是否希望使用异步方法以防Send
导致阻塞?
答案 1 :(得分:0)
不正确,发送是阻塞的,尽管它只是写入本地队列。
在调用await Task.Yield();
之前调用MessageQueue.Send(..)
。
如果您纯粹使用async / await,这将对吞吐量产生相当大的影响。