Hola.
El BarckgroundWorker tiene un par de metodos que te permiten decir que hacer, uno de ellos es el DoWork donde metes el código que queres que quede funcionando por "atras".
Luego para ejectuarlo usas "BackgroundWorker1.RunWorkerAsync()", fijate en este ejemplo:
http://geeks.ms/blogs/eecsaky/archiv...undWorker.aspx