在我上一篇文章《ASP.NET中进行消息处理(MSMQ)一》里对MSMQ做了个通俗的介绍,最后以发送普通文本消息和复杂的对象消息为例介绍了消息队列的使用。本文在此基础上继续介绍MSMQ的相关知识点,最后还是通过一个示例程序来分析MSMQ在实际项目开发中的应用。
建议:如果你对MSMQ不够了解,在你阅读本文前请先阅读第一部分:《ASP.NET中进行消息处理(MSMQ)一》。
一、消息传递的优先级
在MSMQ中消息在队列里传输是分有优先级的,这里我就以实例的形式介绍下关于优先级的使用,优先级一共有七种,MessagePriority枚举里全部进行了封装。因这里只作程序演示就不一一列举出,仅用了Highest和Normal两种类型,关于消息队列上进行消息传输的七种优先级大家可以参考我下面提供的MessagePriority枚举源代码定义。
那么在发送消息的时候怎么指定消息的优先级呢?在Message对象里封装有一个属性Priority,接受一个枚举MessagePriority类型的值来设置消息传输的优先级。如下:
1System.Messaging.Message message = new System.Messaging.Message(); 2message.Priority = MessagePriority.Highest; //最高消息优先级
下面来看看一个在消息传输中使用优先级的示例程序,通过示例程序会学习得更明白。示例程序界面:
根据界面可知,提供了消息名字,消息优先级和消息内容三个输入项,前面曾经说过,这里为了方便演示就仅用了Highest和Normal两种类型,当点击发送消息的时候就通过是否选择优先级来设置消息的优先级,代码如下:
1private void btnSend_Click(object sender, EventArgs e) 2{ 3 //连接到本地的专用队列myQueue 4 MessageQueue myQueue = new MessageQueue(".\\private$\\myQueue"); 5 System.Messaging.Message message = new System.Messaging.Message(); 6 message.Label = tbName.Text; 7 message.Body = tbContext.Text; 8 9 if (cbPriority.Checked) 10 { 11 message.Priority = MessagePriority.Highest; 12 } 13 else 14 { 15 message.Priority = MessagePriority.Normal; 16 } 17 myQueue.Send(message); 18 MessageBox.Show("成功发送消息到队列"); 19}
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索msmq
, 消息
, 优先级
, message
, 消息队列 msmq
示例
,以便于您获取更多的相关知识。