Fix
This commit is contained in:
@@ -27,9 +27,13 @@ namespace Modbus.Net
|
||||
/// 构造器
|
||||
/// </summary>
|
||||
/// <param name="acquireTime">间隔时间</param>
|
||||
public FifoController(int acquireTime)
|
||||
/// <param name="activateSema">是否开启信号量</param>
|
||||
public FifoController(int acquireTime, bool activateSema = true)
|
||||
{
|
||||
_taskCycleSema = new Semaphore(0, _waitingListMaxCount);
|
||||
if (activateSema)
|
||||
{
|
||||
_taskCycleSema = new Semaphore(0, _waitingListMaxCount);
|
||||
}
|
||||
AcquireTime = acquireTime;
|
||||
}
|
||||
|
||||
@@ -38,7 +42,7 @@ namespace Modbus.Net
|
||||
{
|
||||
try
|
||||
{
|
||||
_taskCycleSema.WaitOne();
|
||||
_taskCycleSema?.WaitOne();
|
||||
while (!_taskCancel)
|
||||
{
|
||||
if (AcquireTime > 0)
|
||||
@@ -62,7 +66,7 @@ namespace Modbus.Net
|
||||
if (WaitingMessages.Count <= 0)
|
||||
{
|
||||
_currentSendingPos = null;
|
||||
_taskCycleSema.Close();
|
||||
_taskCycleSema?.Close();
|
||||
sendSuccess = true;
|
||||
}
|
||||
else if (WaitingMessages.Count > WaitingMessages.IndexOf(_currentSendingPos) + 1)
|
||||
@@ -75,7 +79,7 @@ namespace Modbus.Net
|
||||
}
|
||||
if (sendSuccess)
|
||||
{
|
||||
_taskCycleSema.WaitOne();
|
||||
_taskCycleSema?.WaitOne();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -125,7 +129,7 @@ namespace Modbus.Net
|
||||
var success = base.AddMessageToList(def);
|
||||
if (success)
|
||||
{
|
||||
_taskCycleSema.Release();
|
||||
_taskCycleSema?.Release();
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,8 @@ namespace Modbus.Net
|
||||
/// </summary>
|
||||
/// <param name="keyMatches">匹配字典,每个Collection代表一个匹配集合,每一个匹配集合中的数字代表需要匹配的位置,最后计算出来的数字是所有位置数字按照集合排序后叠放在一起</param>
|
||||
/// <param name="acquireTime">获取间隔</param>
|
||||
public MatchController(ICollection<(int,int)>[] keyMatches, int acquireTime) : base(acquireTime)
|
||||
/// <param name="activateSema">是否开启信号量</param>
|
||||
public MatchController(ICollection<(int,int)>[] keyMatches, int acquireTime, bool activateSema = true) : base(acquireTime, activateSema)
|
||||
{
|
||||
KeyMatches = keyMatches;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace Modbus.Net
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public MatchDirectlySendController(ICollection<(int, int)>[] keyMatches) : base(keyMatches,
|
||||
0)
|
||||
0, false)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user