为什么我的MessageQueue不能正常关闭?

时间:2011-03-31 13:00:16

标签: c# .net message-queue dispose

如何在C#中停止来自MessageQueue的同步或异步接收?

我发现如果我打开它后没有从队列中收到任何消息,我可以简单地关闭/处理队列,而接收或EndReceive方法除外,这很好。但是,如果我已经成功收到队列中的消息,我可以关闭并处理队列,但无论是挂起还是异步接收都会继续!

我在其他地方读过并发现一些建议我应该将EnableConnectionCache设置为false以确保在我询问时消息队列已关闭,但无论如何它似乎仍然无视我。

1 个答案:

答案 0 :(得分:0)

正如二进制编码器建议的那样,我发现这只是非事务性队列的结果。至少就MSMQ而言。偷看>接收模式将解决问题,但只有有一个读者。否则,如果您遇到相同的问题,则必须使用事务性队列。