使用Windows服务接收MSMQ消息

时间:2009-10-05 19:10:53

标签: c# windows-services msmq

我正在用C#创建一个Windows服务。

收听邮件的最佳方式是什么?我该如何正确编码?

2 个答案:

答案 0 :(得分:6)

你不听。您可以配置MSMQ Activation以在邮件到达时激活您的组件。该链接包含您需要的所有详细信息,代码和配置。

答案 1 :(得分:2)

如前所述,MSMQ Activation可能是最佳方式,如果您可以使用它。或者,这是我用过的代码:

var ts = new TimeSpan(0, 0, 10);
MessageQueue q = GetQueue<T>();
while (true)
{
  try
  {
    Message msg = q.Receive(ts);
    var t = (T)msg.Body;
    HandleMessage(t);
  }
  catch (MessageQueueException e)
  {
    // Test to see if this was just a timeout.
    // If it was, just continue, there were no msgs waiting
    // If it wasn't, something horrible may have happened
  }
}