Thank you for the reply.
The application is a winforms proejct written in VB on the .net 4 Framework,
using the .net version of the untronics Driver
The reason this is an issue is I need to monitor PLC inputs such as an E-Stop for example, by the PC interface every .5 sec.
This continual monitor loop is causing a massive impact on the UI performance as you can well imagine.
First thought is to create a read only dataset or datatable for each PLC datatype, for example (ReadInputs, ReadOutputs, ReadMI, ReadMB, etc.) on a background worker thread that's dedicated to monitoring the PLC and exectue a update every .5 sec.
Using the rowchanged event on the main IU thread against these tables to get the state of the PLC I/O MI/MB, etc.
This would prevent the main UI thread from needless looping through the PLC inputs to see what's changed.
If this is feasible could there be a second set of tables, for example WriteInput, WriteMI, WriteMB, etc, that would receive the changes from the UI thread and again using the row changed event to write these values back to the PLC as a "Batch", possibly bundling the read with the write events every .5 seconds to send back to the PLC.
I realize there may be slight latency issues with the serial port.
Am I making this more complicated that it needs to be?
Thank you again for you guidence and patience!