我有两个组件,一个是窗口应用程序,另一个是窗口服务。窗口应用程序将信息写入消息队列(MSMQ),服务会读取并处理消息。在代码方面,服务应该一直查看队列中是否有新消息:应该使用无限的 while 循环还是计时器(Timer)?或者队列上是否有新消息添加的事件或回调函数?这样当窗口应用程序向队列中添加新消息时,服务就能知道。我想让我的应用程序更加高效,如果还有其他方法可以实现,请给我建议。感谢阅读。
您不需要任何事件或循环。 Receive
方法将从队列中读取,如果队列为空,它将阻塞直到添加新消息。如果在此期间需要做其他事情,请将接收代码放入单独的线程中。
您还可以使用异步方法 BeginReceive
。这实际上会在从队列中读取消息时触发一个事件。