I've been developing a gui (or HMI) for a manufacturing machine for about a year now. There are about ~5000 parameters in the machine that the gui needs read access to.
Currently I have a daemon thread collecting all the variables from the machine as a couple of big datablocks from the machine and parse them out and put them in a list on the gui.
I collect, update and parse everything in less than 40ms which is way below the necessary update frequence of 1 second that is required so I consider this working just fine.
The problem is then how to update the Controls in the actual gui. Since I can only update a control on the same thread it is created on. Im currently using a different thread looping through all the Controls and then using BeginInvoke (winform) or Dispatcher (wpf) to update everything for the user. This seems overly complicated to me.
Is there anyone out there who have done something similiar or have a more elegant way of updating the gui?
Thanks!