rossmann-engineering / EasyModbusTCP.NET

Modbus TCP, Modbus UDP and Modbus RTU client/server library for .NET implementations
922 stars 396 forks source link

Isn't ModbusClient thread safe?(ModbusClient 不是线程安全的吗?) #76

Open jkh404 opened 2 years ago

jkh404 commented 2 years ago

我将ModbusClient 用于多线程环境的时候,调用ModbusClient 的ReadHoldingRegisters 方法时,获取到的值有时候是错误的。 (en:When I use ModbusClient in a multi-threaded environment, I sometimes get the wrong value by calling ModbusClient's ReadHoldingRegisters method.) 错误的(The wrong): image image image 正确的(The correct): image

当我的代码里对ModbusClient 使用lock关键字,才确保了每次结果是正确的。(en: When I use the 'lock' keyword on ModbusClient in my code, I make sure the result is correct every time.) image

Padanian commented 2 years ago

Modbus is client/server communication and doesn't require multithreading, as multiple master threads will end up trying reading or writing concurrently.