zoukankan      html  css  js  c++  java
  • 简单的同步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;
                    }
                }
            }
        }
    ```
    
    
  • 相关阅读:
    蛋疼的时候写三消游戏(十一) 圆形时钟
    C# 中的volatile关键字 (我今天才知道)
    第十四周助教总结
    第十周助教总结
    第十二周助教总结
    C语言I博客作业04
    C语言I博客作业05
    C语言I博客作业02
    第十一周助教总结
    第十三周助教总结
  • 原文地址:https://www.cnblogs.com/changweihua/p/3334083.html
Copyright © 2011-2022 走看看