MSMQ 上是不是有任何事件或回调将新消息添加到队列中
Posted
技术标签:
【中文标题】MSMQ 上是不是有任何事件或回调将新消息添加到队列中【英文标题】:is there any event or callback on MSMQ for new message added to queueMSMQ 上是否有任何事件或回调将新消息添加到队列中 【发布时间】:2012-07-11 08:07:52 【问题描述】:我有两个组件。一个是窗口应用程序,另一个是窗口服务。
窗口应用程序写入消息队列 (MSMQ),服务正在读取它并处理消息。
服务是否应该一直在排队等待新消息...就代码而言,我应该
使用无限 while
循环或 Timer
或队列上是否有任何事件或回调以将新消息添加到队列?这样当窗口应用程序向队列添加新消息时,Service 可以知道。
这就是我要使我的应用程序高效的所有要求,因此如果有任何其他方法可以实现这一点,您可以提出建议。
感谢阅读
【问题讨论】:
【参考方案1】:您不需要任何事件或循环。 Receive
方法将从队列中读取,如果队列为空,它将阻塞,直到添加新消息。如果在此期间需要做其他事情,请将接收代码放在单独的线程中。
您还可以使用BeginReceive
来使用异步方法。当从队列中读取消息时,这实际上会引发一个事件。
【讨论】:
以上是关于MSMQ 上是不是有任何事件或回调将新消息添加到队列中的主要内容,如果未能解决你的问题,请参考以下文章