From d1240e73fb26da8ffe36306cabc7fb899be931cb Mon Sep 17 00:00:00 2001 From: luosheng Date: Sat, 15 Jul 2023 13:26:18 +0800 Subject: [PATCH] Fix --- Modbus.Net/Modbus.Net/Connector/BaseConnector.cs | 1 + Modbus.Net/Modbus.Net/Connector/EventHandlerConnector.cs | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Modbus.Net/Modbus.Net/Connector/BaseConnector.cs b/Modbus.Net/Modbus.Net/Connector/BaseConnector.cs index 9cb4dfb..286cd74 100644 --- a/Modbus.Net/Modbus.Net/Connector/BaseConnector.cs +++ b/Modbus.Net/Modbus.Net/Connector/BaseConnector.cs @@ -76,6 +76,7 @@ namespace Modbus.Net { if (!repeat && messageSendingdef.ReceiveMessage == null) { + asyncLock?.Dispose(); return await SendMsgInner(message, true); } return messageSendingdef; diff --git a/Modbus.Net/Modbus.Net/Connector/EventHandlerConnector.cs b/Modbus.Net/Modbus.Net/Connector/EventHandlerConnector.cs index 86340e4..8068bfe 100644 --- a/Modbus.Net/Modbus.Net/Connector/EventHandlerConnector.cs +++ b/Modbus.Net/Modbus.Net/Connector/EventHandlerConnector.cs @@ -53,8 +53,9 @@ namespace Modbus.Net /// 发送内部 /// /// 发送的信息 + /// 是否为重发消息 /// 发送信息的定义 - protected async Task SendMsgInner(byte[] message) + protected async Task SendMsgInner(byte[] message, bool repeat = false) { IDisposable asyncLock = null; try @@ -77,6 +78,11 @@ namespace Modbus.Net success = messageSendingdef.ReceiveMutex.WaitOne(TimeoutTime); if (success) { + if (!repeat && messageSendingdef.ReceiveMessage == null) + { + asyncLock?.Dispose(); + return await SendMsgInner(message, true); + } return messageSendingdef; } }