Hi,

I am trying to go off and collect data on a regular basis, which can take time, then once I have collated it all, use it in the GUI thread. The data can change - sometimes only 1 message, sometimes several.

If I use a simple example and pass a string in to RunWorkerAsync( ) then change the string by setting e.Result in the DoWork function, RunWorkerComple ted gets called (and has the new string in e.Result).
...