当前位置:
首页 > Python基础教程 >
-
C#教程之队列工厂之(MSMQ)(2)
61 var message = new Message();
62 message.Body = content;
63 message.Label = name;
64 _msmq.Send(message);
65 return true;
66 }
67 catch (Exception ex)
68 {
69 throw new Exception(ex.Message);
70 }
71 }
72
73 public void Dispose()
74 {
75 if (_msmq != null)
76 {
77 _msmq.Close();
78 _msmq.Dispose();
79 _msmq = null;
80 }
81 }
82 }
到这里我们的MSMQ简单封装代码已经完成了,咋们再来通过控制台调用下这个队列客户端代码:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Client(); 6 } 7 8 /// <summary> 9 /// 客户端 10 /// </summary> 11 private static void Client() 12 { 13 //实例化QMsmq对象 14 var msmq = QueueReposity<QMsmq>.Current; 15 try 16 { 17 Console.WriteLine("创建:msmq"); 18 msmq.Create(); 19 20 while (true) 21 { 22 try 23 { 24 var result = msmq.Read(); 25 Console.WriteLine(string.Format("接受第{0}个:{1}", result.Label, result.Body)); 26 } 27 catch (Exception ex) 28 { Console.WriteLine("异常信息:" + ex.Message); } 29 } 30 } 31 catch (Exception ex) 32 { 33 throw ex; 34 } 35 finally 36 { 37 Console.WriteLine("释放。"); 38 msmq.Dispose(); 39 } 40 } 41 }
这里能够看出客户端代码中使用MSMQ步骤主要有:QueueReposity<QMsmq>.Current工厂创建自定义队列实例-》Create()创建-》Read()读取-》Dispose()释放mq,流程还算清晰吧;如下服务端代码:
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Server(); 6 } 7 8 /// <summary> 9 /// 服务端 10 /// </summary> 11 private static void Server() 12 { 13 //实例化QMsmq对象 14 var msmq = QueueReposity<QMsmq>.Current; 15 16 try 17 { 18 Console.WriteLine("创建:msmq"); 19 msmq.Create(); 20 21 var num = 0; 22 do 23 { 24 Console.WriteLine("输入循环数量(数字,0表示结束):"); 25 var readStr = Console.ReadLine(); 26 num = string.IsNullOrWhiteSpace(readStr) ? 0 : Convert.ToInt32(readStr); 27 28 Console.WriteLine("插入数据:"); 29 for (int i = 0; i < num; i++) 30 { 31 var str = "我的编号是:" + i; 32 msmq.Write(str, i.ToString()); 33 Console.WriteLine(str); 34 } 35 } while (num > 0); 36 } 37 catch (Exception ex) 38 { 39 } 40 finally 41 { 42 Console.WriteLine("释放。"); 43 msmq.Dispose(); 44 } 45 Console.ReadLine(); 46 } 47 }
服务端的步骤几乎和客户端差不多,区别在于一个读取一个写入,服务端步骤:QueueReposity<QMsmq>.Current工厂创建自定义队列实例-》Create()创建-》Write()写入-》Dispose()释放mq;以上对MSMQ的代码分享和环境搭建讲解,希望能给您带来好的帮助,谢谢阅读;
git地址: https://github.com/shenniubuxing3 云栖社区博客:https://yq.aliyun.com/u/shenniu003