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

📄 program.cs

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

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

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

        /// <summary>
        /// 连接消息队列并发送消息到队列
        /// </summary>
        public static void SendMessage()
        {
            try
            {
                //连接到本地的队列
                MessageQueue myQueue = new MessageQueue(".\\private$\\myQueueTrans");

                Message myMessage = new Message();
                myMessage.Body = "消息内容";
                myMessage.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
                
                MessageQueueTransaction myTransaction = new MessageQueueTransaction();
                //启动事务
                myTransaction.Begin();
                //发送消息到队列中
                myQueue.Send(myMessage, myTransaction);
                //提交事务
                myTransaction.Commit();
                Console.WriteLine("消息发送成功!");
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }
        }

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

⌨️ 快捷键说明

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