feat: 使用排序来解决时间冲突
This commit is contained in:
parent
49cbdc51d9
commit
be8fed995c
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue