⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program.cs

📁 MSMQ之使用範例程式
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Messaging;

namespace MSMQ
{
    class Program
    {
        static void Main(string[] args)
        {
            Createqueue(".\\myQueue");
            SendMessage();
            GetAllMessage();
            //ReceiveMessage();
        }


        /// <summary>
        /// 通过Create方法创建使用指定路径的新消息队列
        /// </summary>
        /// <param name="queuePath"></param>
        public static void Createqueue(string queuePath)
        {
            try
            {
                if (!MessageQueue.Exists(queuePath))
                {
                    MessageQueue.Create(@".\private$\myQueue");
                }
                else
                {
                    Console.WriteLine(queuePath + "已经存在!");
                }
            }
            catch (MessageQueueException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        /// <summary>
        /// 连接消息队列并发送消息到队列
        /// </summary>
        public static void SendMessage()
        {
            try
            {
                //连接到本地的队列
                MessageQueue myQueue = new MessageQueue(".\\private$\\myQueue");
                
                Message myMessage = new Message();
                myMessage.Body = "消息内容";
                myMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
                //发送消息到队列中
                myQueue.Send(myMessage);
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        /// <summary>
        /// 连接消息队列并从队列中接收消息
        /// </summary>
        public static void ReceiveMessage()
        {
            //连接到本地队列
            MessageQueue myQueue = new MessageQueue(".\\private$\\myQueue");
            myQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
            try
            {
                //从队列中接收消息
                Message myMessage = myQueue.Receive();
                string context = (string)myMessage.Body; //获取消息的内容
                Console.WriteLine("消息内容为:" + context);
            }
            catch (MessageQueueException e)
            {
                Console.WriteLine(e.Message);
            }
            catch (InvalidCastException e)
            {
                Console.WriteLine(e.Message);
            }
        }

        /// <summary>
        /// 清空指定队列的消息
        /// </summary>
        public static void ClearMessage()
        {
            MessageQueue myQueue = new MessageQueue(".\\private$\\myQueue");
            myQueue.Purge();
        }

        /// <summary>
        /// 连接队列并获取队列的全部消息
        /// </summary>
        public static void GetAllMessage()
        {
            //连接到本地队列
            MessageQueue myQueue = new MessageQueue(".\\private$\\myQueue");
            Message[] message = myQueue.GetAllMessages();
            XmlMessageFormatter formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
            for (int i = 0; i < message.Length; i++)
            {
                message[i].Formatter = formatter;
                Console.WriteLine(message[i].Body.ToString());
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -