• 简单的同步MSMQ


    # 简单的同步MSMQ
    
    ```cs
        using System;
        using System.Messaging;
        using System.Windows.Forms;
        
        namespace MSMQExample
        {
            ///
            /// 一个简单的MSMQ例子,目前只是同步操作。
            ///
            public partial class Form1 : Form
            {
        
                private string queuestring = @".Private$MyQueue";
                private int times = 0;
        
                public Form1()
                {
                    InitializeComponent();
                }
        
                private void Form1_Load(object sender, EventArgs e)
                {
        
                }
        
                ///
                ///
                ///
                ///
                private void btn_create_Click(object sender, EventArgs e)
                {
                    try
                    {
                        if (!MessageQueue.Exists(queuestring))
                        {
                            MessageQueue.Create(queuestring);
                        }
                        MessageQueue queue = new MessageQueue(queuestring);
                        lbl_msg1.Text = string.Format("path={0}
    format={1}", queue.Path, queue.FormatName);
                    }
                    catch (MessageQueueException ex)
                    {
                        lbl_msg1.Text = ex.Message;
                    }
                }
        
                /// 
                /// 
                private void btn_rec_Click(object sender, EventArgs e)
                {
                    try
                    {
                        MessageQueue queue = new MessageQueue(queuestring);
                        queue.Formatter = new BinaryMessageFormatter();
                        int count = 0;
                        foreach (System.Messaging.Message message in queue)
                        {
                            count++;
                            break;
                        }
                        if (count > 0)
                        {
                            System.Messaging.Message message = queue.Receive();
                            byte[] buffer = (byte[])message.Body;
                            lbl_msg2.Text = System.Text.Encoding.UTF8.GetString(buffer);
                        }
                        else
                            lbl_msg2.Text = "没有消息!";
                    }
                    catch (Exception ex)
                    {
                        lbl_msg2.Text = ex.Message;
                    }
                }
        
                /// 
                /// 
                private void btn_send_Click(object sender, EventArgs e)
                {
                    try
                    {
                        string mss = DateTime.Now.ToString("当前时间:yyyy-MM-dd HH:mm:ss.fff。");
                        MessageQueue queue = new MessageQueue(queuestring);
                        byte[] msg = System.Text.Encoding.UTF8.GetBytes(mss);
                        System.Messaging.Message Msg = new System.Messaging.Message(msg, new BinaryMessageFormatter());
                        Msg.AcknowledgeType = AcknowledgeTypes.PositiveReceive | AcknowledgeTypes.PositiveArrival;
                        Msg.Label = "消息" + times;
                        queue.Send(Msg);
                        queue.Close();
                        lbl_msg3.Text = "已发送!";
                        times++;
                    }
                    catch (Exception ex)
                    {
                        lbl_msg3.Text = ex.Message;
                    }
                }
            }
        }
    ```
    
    
  • 相关阅读:
    【转载】爸妈,求你们不要这么懂事
    【Selenium】各种方式在选择的时候应该怎么选择
    java动态绑定与静态绑定【转】
    java 字符串池【转】
    【转】java中PriorityQueue优先级队列使用方法
    【转】程序员的出路之一
    关于现在,关于未来
    计算机网络实验(router_sim)工具
    MIT算法导论课程
    最大间隙问题
  • 原文地址:https://www.cnblogs.com/changweihua/p/3334083.html
Copyright © 2020-2023  润新知