C#中使用Windows消息队列服务(MSMQ)简单示例
2012-07-31 09:11
891 查看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Messaging;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string QueuePath = ".\\private$\\test";//队列路径
IMessageFormatter formatter = new System.Messaging.BinaryMessageFormatter();//把自定义类型串行化为一个专有的二进制的格式
private void button1_Click(object sender, EventArgs e)
{
CreateMessageQueue(QueuePath);
SendMessage(QueuePath, CreateMessage(textBox1 .Text, formatter));
}
private System.Messaging.Message CreateMessage(string text, IMessageFormatter formatter)
{
//创建消息
System.Messaging.Message message = new System.Messaging.Message();
message.Body = text;
message.Formatter = formatter;
return message;
}
private void CreateMessageQueue(string queuePath)
{
//创建队列
if (!MessageQueue.Exists(queuePath))
{
MessageQueue queue = MessageQueue.Create(queuePath);
queue.SetPermissions("Administrators", MessageQueueAccessRights.FullControl);
queue.Label = queuePath;
}
}
private bool SendMessage(string queuePath,
System.Messaging.Message msg)
{
//发送消息
if (!MessageQueue.Exists(queuePath))
{
return false;
}
MessageQueue queue = new System.Messaging.MessageQueue(queuePath);
queue.Send(msg);
return true;
}
private System.Messaging.Message ReceiveMessage(string queuePath)
{
//接收消息
if (!MessageQueue.Exists(queuePath))
{
return null;
}
MessageQueue queue = new MessageQueue(queuePath);
System.Messaging.Message message = queue.Receive();
return message;
}
private void button2_Click(object sender, EventArgs e)
{
System.Messaging.Message msg = ReceiveMessage(QueuePath);
msg.Formatter = formatter;
textBox2 .Text = msg.Body.ToString();
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Messaging;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string QueuePath = ".\\private$\\test";//队列路径
IMessageFormatter formatter = new System.Messaging.BinaryMessageFormatter();//把自定义类型串行化为一个专有的二进制的格式
private void button1_Click(object sender, EventArgs e)
{
CreateMessageQueue(QueuePath);
SendMessage(QueuePath, CreateMessage(textBox1 .Text, formatter));
}
private System.Messaging.Message CreateMessage(string text, IMessageFormatter formatter)
{
//创建消息
System.Messaging.Message message = new System.Messaging.Message();
message.Body = text;
message.Formatter = formatter;
return message;
}
private void CreateMessageQueue(string queuePath)
{
//创建队列
if (!MessageQueue.Exists(queuePath))
{
MessageQueue queue = MessageQueue.Create(queuePath);
queue.SetPermissions("Administrators", MessageQueueAccessRights.FullControl);
queue.Label = queuePath;
}
}
private bool SendMessage(string queuePath,
System.Messaging.Message msg)
{
//发送消息
if (!MessageQueue.Exists(queuePath))
{
return false;
}
MessageQueue queue = new System.Messaging.MessageQueue(queuePath);
queue.Send(msg);
return true;
}
private System.Messaging.Message ReceiveMessage(string queuePath)
{
//接收消息
if (!MessageQueue.Exists(queuePath))
{
return null;
}
MessageQueue queue = new MessageQueue(queuePath);
System.Messaging.Message message = queue.Receive();
return message;
}
private void button2_Click(object sender, EventArgs e)
{
System.Messaging.Message msg = ReceiveMessage(QueuePath);
msg.Formatter = formatter;
textBox2 .Text = msg.Body.ToString();
}
}
}
相关文章推荐
- C#中使用Windows消息队列服务(MSMQ)简单示例
- C#编写Windows服务程序 (服务端),client使用 消息队列 实现淘宝 订单全链路效果
- c# .net windows消息队列简单应用示例
- c# .net windows消息队列简单应用示例
- C#编写Windows服务程序 (服务端),客户端使用 消息队列 实现淘宝 订单全链路效果
- c#中使用ServiceStack创建服务简单示例
- MSMQ(Microsoft Message Queue,微软消息队列) Asp.Net 简单示例
- MSMQ(Microsoft Message Queue,微软消息队列) Asp.Net 简单示例
- Windows平台下的ActiveMQ消息队列的简单使用
- C# 使用 Windows 消息队列机制
- MSMQ(Microsoft Message Queue,微软消息队列) Asp.Net 简单示例
- C#中使用消息队列服务
- [MQ]微软消息队列(MSMQ)配置使用小结(c#)
- C# 使用 Windows 消息队列机制
- RabbitMQ .NET消息队列使用入门(一)【简单示例】
- 一个简单的C#消息队列示例
- MSMQ?不,太弱了。使用ActiveMQ实现消息队列服务
- 微软消息队列(MSMQ)配置使用小结(c#)
- c#使用windows服务更新站点地图的详细示例
- MSMQ(微软消息队列)简单使用-支持离线提交数据(供阅)