fix: 修复删除过多东西导致无法读取数据的问题
This commit is contained in:
parent
1053d71d29
commit
fb13a5c484
|
@ -192,6 +192,14 @@ public class UDPServer
|
|||
UDPData? data = null;
|
||||
var key = $"{ipAddr}-{taskID}";
|
||||
|
||||
var startTime = DateTime.Now;
|
||||
var isTimeout = false;
|
||||
while (!isTimeout)
|
||||
{
|
||||
var elapsed = DateTime.Now - startTime;
|
||||
isTimeout = elapsed >= TimeSpan.FromMilliseconds(timeout);
|
||||
if (isTimeout) break;
|
||||
|
||||
try
|
||||
{
|
||||
using (await udpDataLock.AcquireWriteLockAsync(TimeSpan.FromMilliseconds(timeout)))
|
||||
|
@ -204,6 +212,14 @@ public class UDPServer
|
|||
sortedList.RemoveAt(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
logger.Trace("Get nothing even after time out");
|
||||
return new(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (data is null)
|
||||
{
|
||||
|
@ -215,12 +231,6 @@ public class UDPServer
|
|||
return new(data.DeepClone());
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
logger.Trace("Get nothing even after time out");
|
||||
return new(null);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步寻找目标发送的所有内容,并清空队列
|
||||
|
@ -234,6 +244,15 @@ public class UDPServer
|
|||
List<UDPData>? data = null;
|
||||
var key = $"{ipAddr}-{taskID}";
|
||||
|
||||
|
||||
var startTime = DateTime.Now;
|
||||
var isTimeout = false;
|
||||
while (!isTimeout)
|
||||
{
|
||||
var elapsed = DateTime.Now - startTime;
|
||||
isTimeout = elapsed >= TimeSpan.FromMilliseconds(timeout);
|
||||
if (isTimeout) break;
|
||||
|
||||
try
|
||||
{
|
||||
using (await udpDataLock.AcquireWriteLockAsync(TimeSpan.FromMilliseconds(timeout)))
|
||||
|
@ -247,6 +266,13 @@ public class UDPServer
|
|||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
logger.Trace("Get nothing even after time out");
|
||||
return new(null);
|
||||
}
|
||||
}
|
||||
|
||||
if (data is null)
|
||||
{
|
||||
|
@ -258,13 +284,6 @@ public class UDPServer
|
|||
return new(data);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
logger.Trace("Get nothing even after time out");
|
||||
return new(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取还未被读取的数据列表
|
||||
|
|
Loading…
Reference in New Issue