public class QueueManage
{
///
/// 发送对象到队列中
///
/// 队列名称,因为队列名称在一个应用中应该不改变的,所以大家最好写在配置文件中
/// 要发出去的对象
public static void SendQueue(string QueuePath,MyBase.SmsQueue sq)
{
System.Messaging.MessageQueue mqSend=new System.Messaging.MessageQueue(QueuePath,false);
EnsureQueueExists(QueuePath);
mqSend.Send(sq);
}
///
/// 检查队列,如果队列不存在,则建立
///
/// 队列名称
private static void EnsureQueueExists(string path)
{
if(!MessageQueue.Exists(path))
{
if(!MessageQueue.Exists(path))
{
MessageQueue.Create(path);
MessageQueue mqTemp=new MessageQueue(path);
mqTemp.SetPermissions("Everyone",System.Messaging.MessageQueueAccessRights.FullControl);
///不知道该给什么样的权限好,所以就给了Everone全部权限了,当然大家最好自己控制一下
}
}
}
///
/// 从队列中取出对象列表
///
/// 队列名称
public static System.Collections.ArrayList GetMessage(string QueuePath)
{
MyBase.SmsQueue sq=new MyBase.SmsQueue();
System.Messaging.MessageQueue mq=new System.Messaging.MessageQueue(QueuePath,false);
mq.Formatter=new XmlMessageFormatter(new Type[] {typeof(MyBase.SmsQueue)});
System.Messaging.Message[] arrM=mq.GetAllMessages();
mq.Close();
System.Collections.ArrayList al=new System.Collections.ArrayList();
foreach(System.Messaging.Message m in arrM)
{
sq=(TimeFound.SmsGate.Base.SmsQueue)m.Body;
al.Add(sq);
}
return al;
}
}
分享到:
相关推荐
本文将深入探讨C#中如何使用MSMQ进行消息队列的操作,并通过示例代码来展示具体实现。 首先,我们需要理解消息队列的基本概念。消息队列允许应用程序之间通过异步消息传递进行通信,而不必同时在线。发送方将消息放...
提供的“C#MSMQ 消息队列工具”可能是一个简单的示例应用,用于演示如何使用C#操作MSMQ。它可能包含发送、接收消息的功能,以及队列管理的基本操作。通过分析和学习这个工具,开发者可以更好地理解和实践MSMQ在实际...
5. **C#案例**:这可能是一些C#代码示例,展示如何使用提供的框架或库来操作消息队列,如创建生产者、消费者,发送和接收消息等。 综合以上信息,我们可以推断这个开源框架可能是为C#开发者设计的,用于简化与...
在C#中开发消息队列是构建可扩展和高可用性系统的重要技术。...总的来说,C#开发MSMQ涉及环境配置、队列路径、消息格式和实际操作等多个方面,理解并熟练运用这些知识点,可以帮助开发者构建可靠且高效的分布式系统。
总之,通过创建自定义消息队列,并结合异步处理,我们可以显著提升C# WinForm应用的性能和用户体验,尤其在处理大量控件事件和耗时操作时。正确地设计和实施这个机制,能帮助开发者构建出更加健壮、高效的软件。
在这个"C#消息队列案例"中,我们将探讨三个核心概念:消息队列(Message Queues, MQ)、Autofac接口注入以及Aspose.Word进行PDF相关操作。 首先,让我们深入了解消息队列。消息队列是一种异步通信机制,允许不同...
在C#中,我们可以使用IBM提供的`WebSphere MQ .NET`客户端库来与消息队列进行交互。这个库提供了对MQ的所有必需功能,包括打开、关闭、发送和接收消息。 **三、配置步骤** 1. **安装IBM WebSphere MQ .NET客户端**...
在“C# 消息队列.zip”压缩包中,可能包含了示例代码,演示了如何创建消息、如何使用MessageQueue类进行读写操作,以及如何在多线程环境中运行这些操作。学习这个案例将有助于你理解如何在实际项目中运用消息队列和...
开发者可以通过MessageQueue类来操作MSMQ(Microsoft Message Queuing),这是一个内置的消息队列服务。 在这个项目中,Queue_Service.exe很可能是消息队列服务端,负责接收和处理客户端发送的消息。而Queue_Client...
在C#中,我们可以使用System.Messaging命名空间中的MessageQueue类来操作消息队列。以下是一些关键概念和步骤: 1. **创建消息队列**:首先,我们需要创建一个消息队列。这可以通过MessageQueue.Create方法完成,...
在Windows操作系统中,消息队列(Message Queuing, MSMQ)是一种常见的IPC机制,尤其适用于那些需要异步、可靠通信的应用场景。本实例以C#语言为基础,详细讲解如何利用消息队列进行进程间通信。 首先,我们需要...
本实例聚焦于使用C#语言和Windows操作系统中的消息队列(Message Queuing,简称MSMQ)进行数据传输。Windows消息队列提供了一种可靠且异步的消息传递机制,允许应用程序在不同的时间点发送和接收消息。 **C#与...
在C#编程环境中,我们可以使用.NET框架提供的System.Messaging命名空间来操作消息队列。本文将详细讲解如何使用C#实现消息队列发送消息,并探讨相关的技术细节。 首先,我们需要了解消息队列的基本概念。消息队列...
但在实际应用中,如果多个线程可能同时操作队列,就需要添加同步机制以避免数据竞争和不一致。 此外,为了保证程序的正常退出,我们把新线程设置为后台线程(`th.IsBackground = true`)。这样,当主线程结束时,...
- 在多线程环境下,对任务队列的操作(添加任务和获取任务)必须是线程安全的,避免数据竞争和不一致的状态。C#中的`System.Threading`命名空间提供了许多工具来实现线程同步,如`Monitor`, `Mutex`, `Semaphore`, ...
在本文中,我们将深入探讨如何使用C#中的队列数据结构(Queue)来解决简单的并发问题。队列是一种线性数据结构,遵循先进先出(FIFO)的原则,即第一个进入的元素也将是第一个离开的元素。这种特性使得队列在处理...
在Windows操作系统中,消息队列Timer是用于调度定时任务的关键机制。它允许程序在特定时间间隔后执行某个操作,而无需持续轮询或阻塞主线程。这种机制在服务器程序中尤其有用,因为它可以帮助优化资源利用率,提高...
IBM WebSphere MQ(以前称为WebSphere Message Broker)是此类系统的一个杰出代表,它提供了高可用性、可扩展性和跨平台的消息队列服务。本实例将深入探讨如何使用C#语言来实现与IBM WebSphere MQ的交互,进行消息的...
除了基本操作,MSMQ还支持一些高级特性,例如事务性消息、消息确认、消息优先级、队列权限管理等。事务性消息保证了消息的原子性,即使在发送或接收过程中出现故障,也能保证消息不丢失。消息确认则允许接收方确认已...
消息队列操作类,本人已经测试过了,可以用的 请放心下载