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
  • 相关阅读:
    2018-08-25多线程Thread类+Runnable接口+线程的6种状态
    2018-08-24Properties类+序列化+反序列化+FileUtils+FilenameUtils
    2018-08-22字节字符转换流InputStreamReader+OutputStreamWriter+缓冲流Buffered+newLine换行方法
    2018-08-21文件字节输出流OutputStream+文件字节输入流InputStream+字符输出流FileReader+字符输出流FileWriter
    2018-08-20内容IO流中的File类+文件过滤器FileFilter+递归
    List接口方法、LinkedList方法、Vector集合、Set接口下HashSet、LinkedHashSet集合、HashCode()+equals()方法对于Set接口判断重复的详细细节
    集合之Collection接口AND Iterator迭代器 AND 增强for AND 泛型
    面向对象测试题
    基本类型包装类之system类
    Date
  • 原文地址:https://www.cnblogs.com/lizihong/p/4303932.html
Copyright © 2011-2022 走看看