使用微软消息队列实现C#进程间通信

豆豆网   技术应用频道   2007年11月20日  【字号: 收藏本文

内容摘要:顾名思义,微软消息队列(MSMQ)是一种给队列发送消息以便稍后进行处理的方法。消息由一个“Producer”(生产者)应用程序发送出去,再由一个“Consumer”(消费者)应用程序返回。

  顾名思义,微软消息队列(MSMQ)是一种给队列发送消息以便稍后进行处理的方法。消息由一个“Producer”(生产者)应用程序发送出去,再由一个“Consumer”(消费者)应用程序返回。

  这两个应用程序可以在同一台机器上,在整个网络中,或甚至是位于并不总是连接在一起的不同机器上。MSMQ具有故障保险特性,因为如果第一次传送失败,它会重新发送消息。这样可保证你的应用程序消息到达它们的目的地。

  我将应用一个叫做“TechRepublic”的队列。当你运行本文下载版本中的样本实例时,如果这个队列不存在,它会自动建立。

  在前面的一篇文章中,Zach Smith说明了如何使用IPC通道在同一台机器上的两个进程间通信。他将在本文中说明如何在同一台机器或网络上的应用程序间实现进程间通信。

  访问MSMQ

  通过.NET访问队列由System.Messaging.MessageQueue对象完成。列表A说明了如何在一台名为“SRV-MESSAGING”的计算机上访问TechRepublic队列。

  列表A

  MessageQueue queue =
  
  new MessageQueue("SRV-MESSAGINGTechRepublic");

  注:要应用这个对象,你必须在你的项目中添加一个参考。

  现在我们有了一个MessageQueue对象,这个对象为你提供与队列交互需要的所有功能。

  如果队列不存在,你可以调用MessageQueue对象的静态Create方法编程建立队列。列表B中的代码说明如何检查队列是否存在,建立队列或给队列添加一个参考。

  列表B

  MessageQueue queue = null;
  
  string queueName = "SRV-MESSAGINGTechRepublic";
  
  if (MessageQueue.Exists(queueName))
  
  queue = newMessageQueue(queueName);
  
  else
  
  queue = MessageQueue.Create(queueName, false);

责编:豆豆技术应用

正在加载评论...