Need to create a service to collect data and send to clients as it is received
<p>I currently have a Windows Form application that receives data through a socket, asyncronously. The data coming through the socket can be new data, or updates to previous data. This data is coming off of a production line, tracking different aspects of the pieces running through that line. The data is updated very quickly and sent out to the clients. The Windows Forms application takes that data and places it into a table in memory. If it is new data, it inserts a new row. If the record is just being updated, it updates that row. The application has 20 graphs and 8 datagridviews that are then updated by the data in the table. The updates to the GUI have to be continuous and "real-time", because they are monitoring the production process. We may have 10 - 20 users using this program at the same time in various places in the production process.</p>

<p>The problem that is coming up now, is that we are adding much more data display to the GUI, and it is becoming a threading nightmare, not to mention a maintanence nightmare as well.</p>

<p>What I am hoping to do is separate the socket collection portion of the program to a service or something that would collect the data, store it in a table and notify any clients connected that they have data. Then allow the client to consume that data and display it to the GUI.</p>

<p>Does this sound possible? Is there a more graceful way of handling these situations? Looking for detailed suggestions.</p>
