diff --git a/server/src/UdpServer.cs b/server/src/UdpServer.cs index 3f4e915..6a53141 100644 --- a/server/src/UdpServer.cs +++ b/server/src/UdpServer.cs @@ -351,19 +351,16 @@ public class UDPServer // 异步锁保护 udpData await Task.Run(() => { - lock (udpData) + // Handle RemoteEP + if (endPoint is null) { - // Handle RemoteEP - if (endPoint is null) - { - logger.Debug($"Receive Data from Unknown at {DateTime.Now.ToString()}:"); - logger.Debug($" Original Data : {BitConverter.ToString(data).Replace("-", " ")}"); - return; - } - - var udpDataObj = RecordUDPData(data, endPoint, time, Convert.ToInt32(data[1])); - PrintData(udpDataObj); + logger.Debug($"Receive Data from Unknown at {DateTime.Now.ToString()}:"); + logger.Debug($" Original Data : {BitConverter.ToString(data).Replace("-", " ")}"); + return; } + + var udpDataObj = RecordUDPData(data, endPoint, time, Convert.ToInt32(data[1])); + PrintData(udpDataObj); }); } @@ -385,7 +382,11 @@ public class UDPServer var dataQueue = udpData.GetOrAdd(key, _ => new ConcurrentQueue()); dataQueue.Enqueue(data); - logger.Debug($"Test dataQueue.Count = {dataQueue.Count}"); + // 对队列进行一次按时间排序 + var sorted = dataQueue.OrderBy(d => d.DateTime).ToList(); + udpData.TryUpdate(key, new ConcurrentQueue(sorted), dataQueue); + + logger.Debug($"Test dataQueue.Count = {udpData[key].Count}"); return data; }