消息队列编程实例

 

1.        专用队列

private void button1_Click(object sender, RoutedEventArgs e)

        {

            //在指定路径上创建一个消息队列的引用

            MessageQueue mq = new MessageQueue(".\\Private$\\MSMQDemo");

            //创建消息

            Message msg = new Message();

            msg.Body = textBox1.Text;

            //设置序列化器

            msg.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });

            mq.Send(msg);

        }

 

        private void button2_Click(object sender, RoutedEventArgs e)

        {

            MessageQueue mq = new MessageQueue(".\\Private$\\MSMQDemo");

            Message msg = mq.Receive();

            //设置序列化器

            msg.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });

            textBox2.Text = msg.Body.ToString();

        }

2.        公用队列

       private void button1_Click(object sender, RoutedEventArgs e)

        {

            Info o = new Info();

            o.ID = "1";

            o.Name = "yo";

            PublicMsmq(o);

        }

 

        private void button2_Click(object sender, RoutedEventArgs e)

        {

            MessageQueue mq = new MessageQueue(".\\YoMQ");

            Message msg = mq.Receive();

            msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(Info) });

            Info o = msg.Body as Info;

            textBox2.Text = o.ID + o.Name;

        }

 

        public void PublicMsmq(Info info)

        {

            MessageQueue mq = new MessageQueue(".\\YoMQ");

            Message msg=new Message();

            msg.Body=info;

            msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(Info) });

            mq.Send(msg);

        }

    }

 

    public class Info

    {

        public string ID { get; set; }

        public string Name { get; set; }

    }

3.        队列标签

MessageQueue mq = new MessageQueue(".\\YoMQ");

 

            Console.WriteLine(mq.Label);

            //该队列的ID

            Console.WriteLine(mq.FormatName);

            Console.WriteLine(mq.Category.ToString());

            //MachineName 属性不支持 IP 地址格式。

            Console.WriteLine(mq.MachineName);

            Console.WriteLine(mq.QueueName);

            Console.WriteLine(mq.Path);

            Console.ReadKey();

        }

    }

 

    public class Info

    {

        public string ID { get; set; }

        public string Name { get; set; }

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值