| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using MqttMsgServer.Model;
- using MqttMsgServer.Service.Client;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace MqttMsgServer.Service
- {
- public class ThreadMsg : IDisposable
- {
- public static Queue<ReceiveMessageRecord> Msgs;
- Thread _thread = null;
- static ThreadMsg _ThreadReceiveMsg = null;
-
- public static ThreadMsg ThreadReceiveMsg => _ThreadReceiveMsg ?? (_ThreadReceiveMsg = new ThreadMsg());
- public ThreadMsg()
- {
- if (Msgs != null) return;
- Msgs = new Queue<ReceiveMessageRecord>();
- _thread = new Thread(Work);
- _thread.Start();
- }
- private void Work()
- {
- while (true)
- {
- if (Msgs.Count > 0)
- {
- ReceiveMessageRecord mr = null;
- lock (Msgs)
- {
- mr = Msgs.Dequeue();
- }
- if (mr != null)
- {
- try
- {
- ClientInfoService cs = new ClientInfoService();
- cs.WriteData(mr);
- }
- catch (Exception err)
- {
- Console.WriteLine(err);
- }
-
- }
- }
- Thread.Sleep(1);
- }
- // ReSharper disable once FunctionNeverReturns
- }
- public void Insert(ReceiveMessageRecord pm)
- {
- if (pm != null)
- {
- lock (Msgs)
- {
- Msgs.Enqueue(pm);
- }
- }
- }
- public void Dispose()
- {
- throw new NotImplementedException();
- }
- }
- }
|