C# 模拟一个处理消息队列的线程类 Message Queue

 1  // 模拟一个处理消息队列的类
 2     class MessageHandler
 3     {
 4         // 消息队列
 5         private Queue<string> messageQue = new Queue<string>();
 6         private Thread th = null;
 7         private bool can = true;
 8 
 9         // 处理消息队列的方法
10         void HandlerMessage() {
11             while (can) {
12                 if (messageQue.Count > 0) {
13                     Thread.Sleep(1000);
14                     Console.WriteLine(messageQue.Dequeue());
15                 }
16             }
17         }
18 
19         // 向消息队列中增加消息
20         public void AppendMessage(string message) {
21             messageQue.Enqueue(message);
22         }
23 
24         // 开始 处理消息的线程
25         public void Start() {
26             if (th == null) {
27                 th = new Thread(HandlerMessage);
28                 th.Name = "HandlerMessage";
29             }
30 
31             if (!th.IsAlive) {
32                 th.Start(); 
33             }
34         }
35 
36         // 结束 处理消息的线程
37         public void Stop() {
38             can = false;
39         }
40     }
41 }
原文地址:https://www.cnblogs.com/easyfrog/p/3141277.html