zoukankan      html  css  js  c++  java
  • MsMq的消息创建、发送和接收操作

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Messaging;
    
    
    namespace MSMQ
    {
        public partial class MsMq
        {
    
            //通过Create方法创建使用指定路径的新消息队列
            /**/
            /// <summary>
            /// 通过Create方法创建使用指定路径的新消息队列
            /// </summary>
            /// <param name="queuePath"></param>
            public static void Createqueue(string queuePath)
            {
                try
                {
                    if (!MessageQueue.Exists(queuePath))
                    {
                        MessageQueue.Create(@".\private$\myQueue");
                    }
                    else
                    {
                        MessageBox.Show(queuePath + "已经存在!");
                    }
                }
                catch (MessageQueueException e)
                {
                    MessageBox.Show(e.Message);
                }
            }
            /**/
            /// <summary>
            /// 连接消息队列并发送消息到队列
            /// </summary>
            public static void SendMessage()
            {
                try
                {
                    //连接到本地的队列
                    MessageQueue myQueue = new MessageQueue(".\\private$\\myQueue");
    
                    MessageQueueTransaction myTransaction = new MessageQueueTransaction();
    
                    System.Messaging.Message myMessage = new System.Messaging.Message();
                    myMessage.Body = System.Guid.NewGuid().ToString() + "消息内容";
                    myMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
                    //发送消息到队列中
                    myQueue.Send(myMessage);
    
                    MessageBox.Show("消息发送成功");
    
                }
                catch (ArgumentException e)
                {
                    MessageBox.Show(e.Message);
                }
            }
    
            /**/
            /// <summary>
            /// 连接消息队列并从队列中接收消息
            /// </summary>
            public static void ReceiveMessage()
            {
                //连接到本地队列
                MessageQueue myQueue = new MessageQueue(".\\private$\\myQueue");
    
                if (message.Length == 0)
                {
                    MessageBox.Show("队列中没有任何消息!");
                    return;
                }
                myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
    
                try
                {
    
                    //从队列中接收消息
                    System.Messaging.Message myMessage = myQueue.Receive();
    
                    string context = (string)myMessage.Body; //获取消息的内容
                    //Console.WriteLine("消息内容为:" + context);
                    MessageBox.Show("消息内容为:" + context);
    
                }
                catch (MessageQueueException e)
                {
                    MessageBox.Show(e.Message);
                }
                catch (InvalidCastException e)
                {
                    MessageBox.Show(e.Message);
                }
            }
        }
    }
  • 相关阅读:
    2020年JVM面试题记录
    Java对象创建过程
    Java内存模型
    JavaMail读取邮件,如何过滤需要的邮件
    Java Mail 邮件 定时收件
    Java很简单的文件上传(transferTo方式)
    Java架构师之必须掌握的10个开源工具
    Java互联网安全项目架构平台设计
    Java互联网安全项目架构设计第一篇
    Apache POI 4.0.1版本 Excel导出数据案例(兼容 xls 和 xlsx)(六)
  • 原文地址:https://www.cnblogs.com/iwenwen/p/3129286.html
Copyright © 2011-2022 走看看