Fully featured .NET library in C# to build MTConnect Agent, Adapter, and Client Applications. Pre-built Agents with Windows Installers. Support for Windows and Linux. Supports MTConnect Versions up to 2.3. Supports .NET Framework 4.6.1 up to .NET 8
MD5 implementation is not thread safe. As a result ChangeId sometimes got same value for different observations under heavy multi-threaded test.
Made it thread-safe without blocking thread, but sacrificed some memory.
My particular problem happened in MTConnectAgent
private static bool FilterDelta
where condition
if (!ObjectExtensions.ByteArraysEqual(newObservation.ChangeId, existingObservation.ChangeId))
was false.
MD5 implementation is not thread safe. As a result ChangeId sometimes got same value for different observations under heavy multi-threaded test. Made it thread-safe without blocking thread, but sacrificed some memory. My particular problem happened in MTConnectAgent
private static bool FilterDelta
where conditionif (!ObjectExtensions.ByteArraysEqual(newObservation.ChangeId, existingObservation.ChangeId))
was false.