zoukankan      html  css  js  c++  java
  • C# MyNewQueue 消息队列

    C#
    using System;
    using System.Messaging;
    using System.Drawing;
    using System.IO;
    
    namespace MyProject
    {
        
    
        /// <summary>
        /// Provides a container class for the example.
        /// </summary>
        public class MyNewQueue
        {
    
            /***************************************************/
            // Provides an entry point into the application.
            //         
            // This example sends and receives a message from
            // a queue.
            /***************************************************/
    
            public static void Main()
            {
                // Create a new instance of the class.
                MyNewQueue myNewQueue = new MyNewQueue();
    
                // Create a queue on the local computer.
                CreateQueue(".\myQueue");
                
                // Send a message to a queue.
                myNewQueue.SendMessage();
    
                // Receive a message from a queue.
                myNewQueue.ReceiveMessage();
    
                return;
            }
    
            /***************************************************/
            // Creates a new queue.
            /***************************************************/
    
            public static void CreateQueue(string queuePath)
            {
                try    
                    {
                    if(!MessageQueue.Exists(queuePath))
                    {
                        MessageQueue.Create(queuePath);
                    }
                    else
                    {
                        Console.WriteLine(queuePath + " already exists.");
                    }
                }
                catch (MessageQueueException e)
                {
                    Console.WriteLine(e.Message);
                }
                
            }
    
            /***************************************************/
            // Sends an image to a queue, using the BinaryMessageFormatter.
            /***************************************************/
            
            public void SendMessage()
            {
                try{
    
                    // Create a new bitmap.
                    // The file must be in the indebug or in
    etail folder, or
                    // you must give a full path to its location.
                    Image myImage = Bitmap.FromFile("SentImage.bmp");
    
                    // Connect to a queue on the local computer.
                    MessageQueue myQueue = new MessageQueue(".\myQueue");
                    
                    Message myMessage = new Message(myImage, new BinaryMessageFormatter());
    
                    // Send the image to the queue.
                    myQueue.Send(myMessage);
                }
                catch(ArgumentException e)
                {
                    Console.WriteLine(e.Message);
                
                }
    
                return;
            }
    
    
            /***************************************************/
            // Receives a message containing an image.
            /***************************************************/
            
            public  void ReceiveMessage()
            {
                            
                try
                {
    
                    // Connect to the a queue on the local computer.
                    MessageQueue myQueue = new MessageQueue(".\myQueue");
    
                    // Set the formatter to indicate body contains an Order.
                    myQueue.Formatter = new BinaryMessageFormatter();
    
                    // Receive and format the message. 
                    System.Messaging.Message myMessage = myQueue.Receive(); 
                    Bitmap myImage = (Bitmap)myMessage.Body;
                    
                    // This will be saved in the indebug or in
    etail folder.
                    myImage.Save("ReceivedImage.bmp",System.Drawing.Imaging.ImageFormat.Bmp);
                    
                    
                }
                
                catch (MessageQueueException)
                {
                    // Handle Message Queuing exceptions.
                }
    
                // Handle invalid serialization format.
                catch (InvalidOperationException e)
                {
                    Console.WriteLine(e.Message);
                }
    
                catch (IOException e)
                {
                    // Handle file access exceptions.
                }
                
                // Catch other exceptions as necessary.
    
                return;
            }
        }
    }
    转载原文:
    http://msdn.microsoft.com/zh-cn/beginner/system.messaging.message%28VS.110%29.aspx
  • 相关阅读:
    C#基础知识系列十(集合)
    C#基础知识系列九(对IEnumerable和IEnumerator接口的糊涂认识)
    C#基础知识系列八(const和readonly关键字)
    C#基础知识系列七(base、this、new、override、abstract、virtual、static)
    C#基础知识系列六(静态类和静态类成员)
    C#基础知识系列五(构造函数)
    C#基础知识系列四(运算符汇总)
    C#基础知识系列三(类和结构体、String和StringBuilder、equals和==)
    C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)
    C#基础知识系列一(goto、i++、三元运算符、ref和out、String和string、重载运算符)
  • 原文地址:https://www.cnblogs.com/lizihong/p/4303932.html
Copyright © 2011-2022 走看看