我有两个组件。一个是Window应用程序,另一个是Window Service
Window应用程序写入Message Queue(MSMQ)和Service正在读取它并处理该消息
服务应该始终保持排队等待新消息...在代码方面我应该
使用无限while
循环或Timer
是否在队列中是否有任何事件或回调添加到队列中的新消息?因此,当窗口应用程序向队列添加新消息时,服务可以知道
这就是我要求使我的应用程序高效,所以如果有任何其他方法来实现这一点,你可以建议。
感谢您的阅读
答案 0 :(得分:11)
您不需要任何事件或循环。 Receive
方法将从队列中读取,如果队列为空,它将阻塞,直到添加新消息。如果您在此期间需要执行其他操作,请将接收代码放在单独的线程中。
您还可以使用BeginReceive
使用异步方法。这实际上会在从队列中读取消息时引发事件。