Via dispatchers...
You have to declare and configure the BackgroundWorker first, then pass data into the worker via the argument of the RunWorkerAsync call and pass data out via DoWorkEventArgs.
http://stackoverflow.com/questions/4428817/accessing-ui-control-from-backgroundworker-thread-c-sharp
You can use MethodInvoker in background thread to access / update ui