在.NET中是否存在MessageQueueWatcher这样的东西?

Mik*_* C. 1 .net msmq

我目前使用System.IO.FileSystemWatcher作为"滚动你自己的"消息队列系统的一部分(使用SOAP Web服务在服务器之间传递XML"消息",将"消息"写入运行Windows服务的磁盘上的特定文件夹一个FileSystemWatcher在它们到达时突然发出新的"消息"并用它们做一些有效的事情).我在.NET 1.0或1.1(我忘记了)的时代写了这篇文章,作为使用COM-interop替代MSMQ SDK的替代方案.以所有这些为背景,我正在考虑用"真正的"消息队列实现替换这个ad hoc消息队列方案.问题是,似乎没有与FileSystemWatcher等效的MSMQ在队列到达时自动从队列中选择新消息.它是埋藏在.NET框架中的某个地方还是我将不得不使用轮询或者保留他们现在的方式?

Noo*_*ilk 5

通过在无限的线程中调用.Receive,它将阻塞直到消息到达,并在收到消息时返回.这是正确的方法.

还有MSMQ触发器,但您只需要简单的.Receive行为,AFAICT.