消息队列(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 } 

 

posted @ 2015-09-22 16:17  Czhipu  阅读(338)  评论(0编辑  收藏  举报