subscribe to msmq
How to a subscribe to a queue in msmq using c#. Assuming i have a client as 开发者_运维问答a win form and would like to subscribe to a que, everytime a message is arrived in the que i would like the form to be notified about it. Any example. Thanks
You could also use WCF to subscribe to messages from an MSMQ queue and handle them as a service method in your WCF service.
Check out
- How to Exchange messages with WCF endpoints and message queueing applications
- WCF and MSMQ
- Sample starter project with WCF and MSMQ
- SOA'zing MSMQ with WCF (and why it's worth it)
You need to look at the types in namespace System.Messaging
.
There is full asynchronous support, so you can wait on a message arriving without halting your UI (but you'll need to use Control.BeginInvoke
to call back into your UI as normal for asynchronous actions in WinForms).
MSDN has plenty of examples, e.g. of an asynchronous message receive.
Why not take a look at NServiceBus?
It's a very stable and mature platform that is built on MSMQ, and has pub/sub right out of the box. Dead easy to get started with, and no need to get your hands dirty with WCF!
As suggested by @marc_s you can use WCF service which can use either NetMSMQ or MSMQIntegrated binding to subscribe to messages in the MSMQ.
If you don't want to introduce WCF service between the Winforms application and the MSMQ, you'll need to build a polling mechanism to check into MSMQ for arrival of new messages.
精彩评论