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;
}
}