在.net 4.5中是否没有MSMQ发送的异步实现

时间:2015-02-27 13:55:08

标签: .net c#-4.0 .net-4.5 msmq

我想知道为什么没有MSMQ发送的异步实现?我正在使用.net 4.5。我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

不需要Send的异步版本,因为Send是异步的。

来自MSDN

  

在消息队列中发送消息始终是异步的   操作。当您确定队列已打开时,您可以继续   发送消息而不停止等待回复。

for remote queues

  

当消息发送到远程计算机上的已打开队列时,消息>队列将消息存储在本地计算机上的传出队列中。

您是否遇到特定的性能问题,或者您是否希望使用异步方法以防Send导致阻塞?

答案 1 :(得分:0)

不正确,发送是阻塞的,尽管它只是写入本地队列。

在调用await Task.Yield();之前调用MessageQueue.Send(..)

如果您纯粹使用async / await,这将对吞吐量产生相当大的影响。