消息队列(MSMQ)使用方法
1 1、命名空间 using System.Messaging; 2 3 2、默认存储路径 C:\WINDOWS\system32\msmq\storage 4 5 3、创建消息队列:MessageQueue mq = MessageQueue.Create(@".\Private$\LeeMSMQ"); 6 7 4、删除队列:MessageQueue.Delete(@".\Private$\LeeMSMQ"); 8 9 5、发送消息:MessageQueue mq = new MessageQueue(@".\Private$\LeeMSMQ"); 10 mq.Send("sayhello1,hello msmq!", "sayhello1"); 11 mq.Send("sayhello2,hello msmq!", "sayhello2"); 12 13 6、接受并删除消息:MessageQueue mq = new MessageQueue(@".\Private$\LeeMSMQ") 14 Message msg = mq.Receive();//引用的队列中可用的第一条消息 15 16 7、接受但不删除消息:Message msg = mq.Peek(); 17 8、删除所有消息: Message msg = mq.Purge(); 18 19 9、返回本机所有私有队列的消息 20 //返回本机所有私有队列的消息 21 foreach (MessageQueue mq in MessageQueue.GetPrivateQueuesByMachine("liyanping")) 22 { 23 mq.Formatter = new XmlMessageFormatter(new string[] { "System.String" }); 24 Message[] msg = mq.GetAllMessages(); 25 foreach (Message m in msg) 26 { 27 Console.WriteLine("label:{0},body:{1}", m.Label, m.Body); 28 } 29 } 30 31 10、返回指定队列的消息 32 if (MessageQueue.Exists(@".\Private$\LeeMSMQ"))//判断私有消息是否存在 33 { 34 using (MessageQueue mq = new MessageQueue(@".\Private$\LeeMSMQ")) 35 { 36 mq.Formatter = new XmlMessageFormatter(new string[] { "System.String" });//设置消息队列格式化器 37 Message msg = mq.Receive();//接收消息 38 Console.WriteLine("label:{0},body: {1}", msg.Label, msg.Body);//输出消息 39 MessageQueue.Delete(@".\Private$\LeeMSMQ"); 40 } 41 }
计较少了,快乐就多了。