MSMQ小Demo

时间:2023-03-09 03:11:29
MSMQ小Demo

Demo基于http://www.cnblogs.com/zhili/p/MSMQ.html

MSMQ小Demo

Server代码:

using System.Messaging;
using System.Text;
using System.Threading.Tasks; namespace MSMQServer
{
class Program
{
static void Main(string[] args)
{
const string messageQueuePath = @".\Private$\MyPrivateMessageQueue";
if (!MessageQueue.Exists(messageQueuePath))
{
using (MessageQueue mq = MessageQueue.Create(messageQueuePath))
{
mq.Label = "";
Console.WriteLine("已创建一个私有信息队列。");
Console.WriteLine("消息队列名称:{0}",mq.QueueName);
Console.WriteLine("消息队列路径:{0}",mq.Path);
mq.Send("My First MessageQueue Message ");
}
} if (MessageQueue.Exists(messageQueuePath))
{
using (MessageQueue mq = new MessageQueue(messageQueuePath))
{
Console.WriteLine("消息队列名称:{0}", mq.QueueName);
Console.WriteLine("消息队列路径:{0}", mq.Path);
mq.Send("My Second MessageQueue Message !");
} } Console.ReadKey();
}
}
}

Client代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Messaging;
using System.Text;
using System.Threading.Tasks; namespace MSMQClient
{
class Program
{
static void Main(string[] args)
{
const string messageQueuePath = @".\Private$\MyPrivateMessageQueue";
if (MessageQueue.Exists(messageQueuePath))
{
using (MessageQueue mq=new MessageQueue(messageQueuePath))
{
mq.Formatter=new XmlMessageFormatter(new string[]{"System.String"});
int i = 0;
foreach (var message in mq.GetAllMessages())
{
Console.WriteLine("My MessageQueue Message {0} :{1}", i, message.Body);
i++;
} var msg = mq.Receive();
Console.WriteLine("My First Receive MessageQueue Message Is :{0} ", msg.Body);
}
} Console.ReadKey();
}
}
}

XMind

练习代码