c# 中如何操作消息队列

  1. “消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。  
  2.   
  3.   消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。  
  4.   
  5.    
  6.   
  7. c#中发往消息队列中发送消息  
  8.   
  9.    
  10.   
  11.   public bool SendMessage(string title, string body)  
  12.         {  
  13.             MessageQueue SmsQueue = new MessageQueue();  
  14.             try  
  15.             {  
  16.                 string mqPath = System.Configuration.ConfigurationSettings.AppSettings["SiteEnvironmentMQPath"];//给基站告警用的(wz的程序)  
  17.                 string MQPath = string.Format(@"FormatName:DIRECT=TCP:{0}", mqPath);  
  18.   
  19.                 SmsQueue.MessageReadPropertyFilter.Body = true;  
  20.                 SmsQueue.MessageReadPropertyFilter.AppSpecific = true;  
  21.                 SmsQueue.MessageReadPropertyFilter.Priority = true;  
  22.                 SmsQueue.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });  
  23.                 SmsQueue.Path = MQPath;  
  24.                 Message objMsg = new Message();  
  25.                 objMsg.Label = title;  
  26.                 objMsg.Body = body;  
  27.                 SmsQueue.Send(objMsg);  
  28.   
  29.         return true;  
  30.             }  
  31.             catch (Exception ex)  
  32.             {  
  33.                 return false;  
  34.             }  
  35.             finally  
  36.             {  
  37.                 SmsQueue.Close();  
  38.             }  
  39.         }  
  40.   
  41. c# 从消息队列中取消息  
  42.   
  43.  public string ReceiveMessage(string mqPath)  
  44.         {  
  45.             string ret = "";  
  46.             MessageQueue SmsQueue = new MessageQueue();  
  47.             try  
  48.             {  
  49.                 string MQPath = string.Format(@"FormatName:DIRECT=TCP:{0}", mqPath);  
  50.                 //string MQPath = System.Configuration.ConfigurationSettings.AppSettings["MQPath"];  
  51.                 SmsQueue.MessageReadPropertyFilter.Body = true;  
  52.                 SmsQueue.MessageReadPropertyFilter.AppSpecific = true;  
  53.                 SmsQueue.MessageReadPropertyFilter.Priority = true;  
  54.                 SmsQueue.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });  
  55.                 SmsQueue.Path = MQPath;  
  56.                 Message objMsg = SmsQueue.Receive();  
  57.                 ret = objMsg.Body.ToString();  
  58.             }  
  59.             catch (Exception ex)  
  60.             {  
  61.                 //LogClass.WriteLog("错误", DateTime.Now.ToString(), ex.Message, "从消息队列读取告警数据");  
  62.                 //System.Threading.Thread.Sleep(Convert.ToInt16(System.Configuration.ConfigurationSettings.AppSettings["sleepTime"]));  
  63.             }  
  64.             finally  
  65.             {  
  66.                 SmsQueue.Close();  
  67.             }  
  68.             return ret  

本文转载自  http://blog.csdn.net/loveandangle/article/details/6733621

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值