feat: 使用排序来解决时间冲突

This commit is contained in:
SikongJueluo 2025-07-15 14:26:24 +08:00
parent 49cbdc51d9
commit be8fed995c
No known key found for this signature in database
1 changed files with 13 additions and 12 deletions

View File

@ -351,19 +351,16 @@ public class UDPServer
// 异步锁保护 udpData // 异步锁保护 udpData
await Task.Run(() => await Task.Run(() =>
{ {
lock (udpData) // Handle RemoteEP
if (endPoint is null)
{ {
// Handle RemoteEP logger.Debug($"Receive Data from Unknown at {DateTime.Now.ToString()}:");
if (endPoint is null) logger.Debug($" Original Data : {BitConverter.ToString(data).Replace("-", " ")}");
{ return;
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);
} }
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<UDPData>()); var dataQueue = udpData.GetOrAdd(key, _ => new ConcurrentQueue<UDPData>());
dataQueue.Enqueue(data); dataQueue.Enqueue(data);
logger.Debug($"Test dataQueue.Count = {dataQueue.Count}"); // 对队列进行一次按时间排序
var sorted = dataQueue.OrderBy(d => d.DateTime).ToList();
udpData.TryUpdate(key, new ConcurrentQueue<UDPData>(sorted), dataQueue);
logger.Debug($"Test dataQueue.Count = {udpData[key].Count}");
return data; return data;
} }