MSMQ中是否有关于新消息添加到队列的事件或回调函数?

8
我有两个组件,一个是窗口应用程序,另一个是窗口服务。窗口应用程序将信息写入消息队列(MSMQ),服务会读取并处理消息。在代码方面,服务应该一直查看队列中是否有新消息:应该使用无限的 while 循环还是计时器(Timer)?或者队列上是否有新消息添加的事件或回调函数?这样当窗口应用程序向队列中添加新消息时,服务就能知道。我想让我的应用程序更加高效,如果还有其他方法可以实现,请给我建议。感谢阅读。
1个回答

13

您不需要任何事件或循环。 Receive 方法将从队列中读取,如果队列为空,它将阻塞直到添加新消息。如果在此期间需要做其他事情,请将接收代码放入单独的线程中。

您还可以使用异步方法 BeginReceive。这实际上会在从队列中读取消息时触发一个事件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接