您的位置:首页 > 其它

WPF消息队列示例——结合项目经验

2013-01-21 22:56 267 查看
标题是有些奇怪,WPF消息队列,消息队列的使用和WPF或者WinForm有关系吗?哦,没有,当然没有。只是我没有用过WPF,因此打算用WPF写这个DEMO。后半年的项目和微软消息队列练习非常紧密,整个项目的数据处理都是采用消息队列传输的。在做项目总结之前,打算回顾一下消息队列简单的使用,具体项目中的应用下一篇在写。

一、消息队列的简介

首先消息队列是要安装的,如果不了解,请度娘或谷哥之。MSMQ采用异步传输,可传输如文本、声音、图象等等。简单说一下我对消息队列的理解吧,就像开奥运会,站了很多队伍(美国队、中国队),这个就类似于队列;而中国队中具体的张三李四王五,就类似于队列中的消息。消息是可以独立存在,但是它在发送的时候,必须依附于某个队列。

其次,安装完消息队列之后,可以看到“传出队列”和“专用队列”。传出队列显示了,将要往外传输的消息的状态;专用队列,显示了已经接受的消息队列的状态。

View Code

MsgQueue:

View Code

c、在WPF中的调用:

由于MsgQueue中的方法都是静态的,因此在WPF后来可以直接进行调用。

代码如下:

View Code
最终演示效果:



三、扩展及代码下载

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应用程序中使用这个格式化程序来发送消息或接收消息。

b、代码下载,点击这里

c、在分布式系统中的使用

微软petshop宠物商店用到了消息队列,有兴趣的也可以自行下载看看。

本篇参考了,http://www.cnblogs.com/beniao/archive/2008/06/26/1229934.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: