在MSMQ上是否有任何事件或回调添加到队列的新消息

时间:2012-07-11 16:29:29

标签: c# msmq message-queue

我有两个组件。一个是Window应用程序,另一个是Window Service Window应用程序写入Message Queue(MSMQ)和Service正在读取它并处理该消息 服务应该始终保持排队等待新消息...在代码方面我应该 使用无限while循环或Timer是否在队列中是否有任何事件或回调添加到队列中的新消息?因此,当窗口应用程序向队列添加新消息时,服务可以知道 这就是我要求使我的应用程序高效,所以如果有任何其他方法来实现这一点,你可以建议。
感谢您的阅读

1 个答案:

答案 0 :(得分:11)

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

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