WPF消息队列示例——结合项目经验
2013-01-21 18:10
274 查看
标题是有些奇怪,WPF消息队列,消息队列的使用和WPF或者WinForm有关系吗?哦,没有,当然没有。只是我没有用过WPF,因此打算用WPF写这个DEMO。后半年的项目和微软消息队列练习非常紧密,整个项目的数据处理都是采用消息队列传输的。在做项目总结之前,打算回顾一下消息队列简单的使用,具体项目中的应用下一篇在写。
一、消息队列的简介
首先消息队列是要安装的,如果不了解,请度娘或谷哥之。MSMQ采用异步传输,可传输如文本、声音、图象等等。简单说一下我对消息队列的理解吧,就像开奥运会,站了很多队伍(美国队、中国队),这个就类似于队列;而中国队中具体的张三李四王五,就类似于队列中的消息。消息是可以独立存在,但是它在发送的时候,必须依附于某个队列。
其次,安装完消息队列之后,可以看到“传出队列”和“专用队列”。传出队列显示了,将要往外传输的消息的状态;专用队列,显示了已经接受的消息队列的状态。
View Code
最终演示效果:
三、扩展及代码下载
a、三种消息发送的格式
.NET消息队列提供了如下的格式程序:XmlMessageFormatter ,BinaryMessageFormatter ,ActiveXMessageFormatter 。上面的例子中,使用的是XmlMessageFormatter 。
b、代码下载,点击这里
c、在分布式系统中的使用
微软petshop宠物商店用到了消息队列,有兴趣的也可以自行下载看看。
本篇参考了,http://www.cnblogs.com/beniao/archive/2008/06/26/1229934.html
一、消息队列的简介
首先消息队列是要安装的,如果不了解,请度娘或谷哥之。MSMQ采用异步传输,可传输如文本、声音、图象等等。简单说一下我对消息队列的理解吧,就像开奥运会,站了很多队伍(美国队、中国队),这个就类似于队列;而中国队中具体的张三李四王五,就类似于队列中的消息。消息是可以独立存在,但是它在发送的时候,必须依附于某个队列。
其次,安装完消息队列之后,可以看到“传出队列”和“专用队列”。传出队列显示了,将要往外传输的消息的状态;专用队列,显示了已经接受的消息队列的状态。
View Code
/// <summary> /// 创建消息队列 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, RoutedEventArgs e) { MsgQueue.CreateQueue(@".\private$\"+textBox1.Text.Trim().ToString()); } /// <summary> /// 发送队列 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, RoutedEventArgs e) { Book book = new Book(); book.BookId = int.Parse(textBox2.Text.ToString()); book.BookName = textBox3.Text; book.BookAuthor = textBox4.Text; book.BookPrice = double.Parse(textBox5.Text.ToString()); if (MsgQueue.SendMess(book)) { MessageBox.Show("成功发送消息到队列"); } } private void ReveiceBtn_Click(object sender, RoutedEventArgs e) { this.textBox6.Text = MsgQueue.ReveiceMess(); }
最终演示效果:
三、扩展及代码下载
a、三种消息发送的格式
.NET消息队列提供了如下的格式程序:XmlMessageFormatter ,BinaryMessageFormatter ,ActiveXMessageFormatter 。上面的例子中,使用的是XmlMessageFormatter 。
类型 | 特性 |
XmlMessageFormatter | 这是默认的格式化程序,前面的例子都是使用它的,从这个名称我们就可以联想到,它是会将自定义的类型串行化为一个XML表示,这个格式化程序很慢,并且会创建相对较多的消息。然而,这些消息可以被运行在不同平台下的应用程序共享和理解。 |
BinaryMessageFormatter | 这个格式化应用程序会把自定义类型串行化为一个专有的二进制的格式。他比上面一种的速度要快得多,而且生成的消息很紧凑。然而只有运行在.NET中的接收者才可以容易地解析这个消息的内容。 |
ActiveXMessageFormatter | ActiveXMessageFormatter 和BinaryMessageFormatter一样,他会把自定义的类型串行化为专用的二进制格式。这个格式也就是MSMQ的COM组件使用的格式。这些传统的COM组件为COM语言(比如Visual Basic 6)提供了基于MSMQ的功能。因此,您可以在用Visual Basic 6编写的MSMQ应用程序中使用这个格式化程序来发送消息或接收消息。 |
c、在分布式系统中的使用
微软petshop宠物商店用到了消息队列,有兴趣的也可以自行下载看看。
本篇参考了,http://www.cnblogs.com/beniao/archive/2008/06/26/1229934.html
相关文章推荐
- WPF消息队列示例——结合项目经验
- 线程消息队列 示例
- 分布式消息队列RabbitMQ之三:四种典型使用场景和代码示例
- PHP结合memcacheq消息队列解决并发问题
- 消息队列创建流程及代码示例
- 在项目中使用消息队列的 10 个理由
- 一个简单的C#消息队列示例
- Redis消息队列示例
- pthreads(二)pthreads结合redis实现消息队列
- PHP结合memcacheq消息队列解决并发问题
- C#中使用Windows消息队列服务(MSMQ)简单示例
- Jenkins结合Docker在CentOS6.7上构建项目示例
- Spring结合嵌入式ActiveMQ使用消息队列
- Linux下的消息队列示例
- 实现posix消息队列示例分享
- Redis消息队列示例
- PHP结合memcacheq消息队列解决并发问题
- Redis消息队列示例
- RabbitMQ .NET消息队列使用入门(一)【简单示例】
- C#中使用Windows消息队列服务(MSMQ)简单示例