Threads cannot modify directly controls in the GUI. you have to use delegates. The gui runs on the Main thread.
You need to use the
control.invokerequired
to test this condition and then call the delegate.
The background worker also cannot return more than 1 object, so you need to use custom object to wrap the data, if you wish to return more than one object.
There are some excellent articles here on CP that you should have a read of to help you out, do a search in the articles section, here is one though to get you going;
AsyncWorker - a typesafe BackgroundWorker (and about Threading in general)[
^]