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