`
suiye007
  • 浏览: 10143 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

MessageQueue的使用

阅读更多
using System;
using System.Messaging;

namespace MyProject
{
    /// <summary>
    /// Provides a container class for the example.
    /// </summary>
    public class MyNewQueue
    {

        /***************************************************/
        // Provides an entry point into the application.
        //         
        // This example gets lists of queues by a variety
        // of criteria.
        /***************************************************/

        public static void Main()
        {
            // Create a new instance of the class.
            MyNewQueue myNewQueue = new MyNewQueue();

            // Send normal and high priority messages.
            myNewQueue.GetQueuesByCategory();
            myNewQueue.GetQueuesByLabel();
            myNewQueue.GetQueuesByComputer();
            myNewQueue.GetAllPublicQueues();
            myNewQueue.GetPublicQueuesByCriteria();
            myNewQueue.GetPrivateQueues();
                        
            return;
        }


        /***************************************************/
        // Gets a list of queues with a specified category.
        // Sends a broadcast message to all queues in that
        // category.
        /***************************************************/
        
        public void GetQueuesByCategory()
        {
            // Get a list of queues with the specified category.
            MessageQueue[] QueueList = 
                MessageQueue.GetPublicQueuesByCategory(new 
                Guid("{00000000-0000-0000-0000-000000000001}"));

            // Send a broadcast message to each queue in the array.
            foreach(MessageQueue queueItem in QueueList)
            {
                queueItem.Send("Broadcast message.");
            }
            
            return;
        }


        /***************************************************/
        // Gets a list of queues with a specified label.
        // Sends a broadcast message to all queues with that
        // label.
        /***************************************************/
        
        public void GetQueuesByLabel()
        {
            // Get a list of queues with the specified label.
            MessageQueue[] QueueList = 
                MessageQueue.GetPublicQueuesByLabel("My Label");

            // Send a broadcast message to each queue in the array.
            foreach(MessageQueue queueItem in QueueList)
            {
                queueItem.Send("Broadcast message.");
            }
            
            return;
        }


        /***************************************************/
        // Gets a list of queues on a specified computer. 
        // Displays the list on screen.
        /***************************************************/
        
        public void GetQueuesByComputer()
        {
            // Get a list of queues on the specified computer.
            MessageQueue[] QueueList = 
                MessageQueue.GetPublicQueuesByMachine("MyComputer");

            // Display the paths of the queues in the list.
            foreach(MessageQueue queueItem in QueueList)
            {
                Console.WriteLine(queueItem.Path);
            }

            return;
        }


        /***************************************************/
        // Gets a list of all public queues.
        /***************************************************/
        
        public void GetAllPublicQueues()
        {
            // Get a list of public queues.
            MessageQueue[] QueueList = 
                MessageQueue.GetPublicQueues();
    
            return;
        }


        /***************************************************/
        // Gets a list of all public queues that match 
        // specified criteria. Displays the list on 
        // screen.
        /***************************************************/
        
        public void GetPublicQueuesByCriteria()
        {
            // Define criteria to filter the queues.
            MessageQueueCriteria myCriteria = new 
                MessageQueueCriteria();
            myCriteria.CreatedAfter = DateTime.Now.Subtract(new 
                TimeSpan(1,0,0,0));
            myCriteria.ModifiedBefore = DateTime.Now;
            myCriteria.MachineName = ".";
            myCriteria.Label = "My Queue";
            
            // Get a list of queues with that criteria.
            MessageQueue[] QueueList = 
                MessageQueue.GetPublicQueues(myCriteria);

            // Display the paths of the queues in the list.
            foreach(MessageQueue queueItem in QueueList)
            {
                Console.WriteLine(queueItem.Path);
            }

            return;
        }


        /***************************************************/
        // Gets a list of private queues on the local 
        // computer. Displays the list on screen.
        /***************************************************/
        
        public void GetPrivateQueues()
        {
            // Get a list of queues with the specified category.
            MessageQueue[] QueueList = 
                MessageQueue.GetPrivateQueuesByMachine(".");

            // Display the paths of the queues in the list.
            foreach(MessageQueue queueItem in QueueList)
            {
                Console.WriteLine(queueItem.Path);
            }
            
            return;
        }
    }
}

 本文引用通告测试:http://blog.661z.com/2010/03/08/messagequeuedeshiyong/

分享到:
评论

相关推荐

    Handler Looper MessageQueue 源码解析

    MessageQueue使用FIFO(先进先出)原则,即最早添加的消息最先被处理。Message对象包含了消息的内容、目标Handler等信息,通过`MessageQueue.enqueueMessage()`方法添加到队列中。 Handler、Looper和MessageQueue...

    C# MessageQueue示例

    综上所述,"C# MessageQueue示例"主要展示了如何使用C#的`System.Messaging`命名空间中的`MessageQueue`类来发送和接收消息。这在分布式系统、多线程环境以及需要高可用性和容错性的应用场景中非常有用。通过学习和...

    活用Android的Message Queue

    在Android开发中,Message Queue是一种重要的机制,用于在不同线程间进行异步通信和任务调度。理解并熟练运用Message Queue、Looper和Handler是构建高效、响应性良好的Android应用的关键。 1. **Message Queue...

    Message,MessageQueue,Looper,Handler详解

    通常情况下,我们会使用一个Looper对象对线程的MessageQueue进行管理。在Android应用的主线程创建时,会默认创建一个Looper对象,而这个Looper对象的创建会自动创建一个MessageQueue。对于其他非主线程来说,默认...

    MessageQueue实战

    MessageQueue实战MessageQueue实战MessageQueue实战MessageQueue实战MessageQueue实战MessageQueue实战MessageQueue实战MessageQueue实战MessageQueue实战MessageQueue实战

    管理MessageQueue的Looper

    在Android系统中,MessageQueue和Looper是两个非常关键的组件,它们构成了消息处理机制的核心,尤其是在UI线程中。理解并有效地使用它们对于编写高效、响应迅速的Android应用至关重要。 `Looper`是Android中的一个...

    Handler+Looper+MessageQueue

    【Android 线程间通信:Handler、Looper 和 MessageQueue 深度解析】 在 Android 应用开发中,为了保证界面的流畅性,我们通常需要将耗时操作放在非 UI 线程中执行,然后通过某种机制将结果传递回 UI 线程进行界面...

    android MessageQueue

    通过阅读《android MessageQueue1.doc》、《android MessageQueue2.doc》和《android MessageQueue3.doc》,你可以更深入地了解MessageQueue的实现细节、使用技巧以及常见问题的解决方案,这对于提升Android应用的...

    Android的消息处理机制--Message,MessageQueue

    ### Android的消息处理机制详解 #### 一、引言 Android应用程序是通过消息驱动的,它...通过合理使用Message、MessageQueue、Handler和Looper,开发者可以轻松地实现线程间的通信,从而提升应用的性能和用户体验。

    实例MSMQ(MessageQueue)

    在C#客户端,我们主要使用`MessageQueue`类来发送消息。以下是一个简单的示例: ```csharp using System.Messaging; public void SendMessage(string queuePath, string message) { MessageQueue queue = new ...

    进程间通信之消息队列 ( message queue )——完整代码

    进程间通信之消息队列 ( message queue ) 消息队列是消息的链表,具有特定的格式,并由消息队列标识符标识. 七种进程间通信方式: 一.无名管道( pipe ) 二.有名管道( fifo ) 三.共享内存 ( shared memory ) 四....

    Thread,Looper,Handler,Message,MessageQueue,MessagePool之间的关系

    子线程中的Handler通过Looper.prepare()和Looper.loop()建立消息循环,然后使用Message.obtain()创建Message,设置数据和目标Handler,最后通过Handler.sendMessage()将Message放入MessageQueue。主线程的Looper会...

    Message Queue 3.5.pdf

    MessageQueue消息服务器** - **核心组件**:处理消息的接收、存储和分发。 **2. 代理** - **作用**:作为客户端与消息服务器之间的中介。 - **功能**:负载均衡、路由、安全认证等。 **3. 连接服务** - **定义**...

    JMS Message Queue 实例

    是一个快速的开源消息组件(框架),支持集群,同等网络,自动检测,TCP,SSL,广播,持久化,XA,和J2EE1.4容器无缝结合,并且支持轻量级容器和大多数跨语言客户端上的Java虚拟机。消息异步接受,减少软件多系统集成...

    android_os_MessageQueue.rar_android

    - Looper是MessageQueue的使用者,它在一个无限循环中不断调用MessageQueue的`next()`方法,获取并处理消息。 - 当MessageQueue为空时,`next()`会调用`pollOnce()`阻塞当前线程,直到有新消息到来或者超时。 3. ...

    Message Queue对比

    比较了Zermoq MQTT Rabbitmq 等多种Message Queue方案

    管理MessageQueue的Looper使用

    本文将深入探讨`Looper`的使用及其在管理`MessageQueue`中的作用。 首先,`Looper`是Android系统中一个用于处理消息循环的类,它在后台线程中不断检查消息队列`MessageQueue`,并将新消息分发给相应的`Handler`进行...

    Message Queue(消息队列)介绍与应用

    ### Message Queue(消息队列)介绍与应用 #### 消息处理中的主要概念 消息队列作为一种关键的技术组件,在分布式系统中发挥着重要的作用。它主要用于处理和传递数据单元(即消息),这些消息可以在简单的文本字符串...

Global site tag (gtag.js) - Google Analytics