苏飞论坛
标题:
窗体上通过MessageQueue 传值
[打印本页]
作者:
youzi
时间:
2013-5-22 21:27
标题:
窗体上通过MessageQueue 传值
这里简单介绍一下如何使用win7自带的消息队列的使用
首先,要到
控制面板-程序-程序和功能-已安装更新-打开或关闭windows功能
勾选 Microsoft Message Queue (MSMQ)服务器 ,这样消息队列才可以使用
下面我们来建一个简单的试例:
建一个窗体,拖上2个文本框一个用于发送消息,一个用于接收消息,如图所示:
单击发送消息的按钮时:[code=csharp] MessageQueue queue=null;
string pathqueue = ".\\Private$\\myqueue";
if (MessageQueue.Exists(pathqueue))
{
//如果此消息队列存在则打开消息队列
queue = new MessageQueue(pathqueue);
}
else
{
//不存在就新建一个消息队列
queue =MessageQueue.Create(pathqueue, false);
queue.SetPermissions("Everyone", MessageQueueAccessRights.FullControl);
}
//创建消息
System.Messaging.Message message = new System.Messaging.Message();
message.Body = this.txtsendmessage.Text.Trim();
//格式化字符串
message.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
queue.Send(message);[/code]
这时已经将文本框的消息保存在消息队列中,接下来我们去取出来看看,在接收消息按钮的单击事件中写入:
[code=csharp] //打开消息队列
MessageQueue messagequeue = new MessageQueue(".\\Private$\\myqueue");
// Receive message, 同步的Receive方法阻塞当前执行线程,直到一个message可以得到
System.Messaging.Message message = messagequeue.Receive();
message.Formatter = new System.Messaging.XmlMessageFormatter(new Type[] { typeof(string) });
this.txtreceive.Text = message.Body.ToString();[/code]
是不是就有方才发送的消息了,这只是简单示范,如有刚好的,期待发上来大家分享一下,我还在学习中。。。。
欢迎光临 苏飞论坛 (http://www.sufeinet.com/)
Powered by Discuz! X3.4