You pass it to the DoWorkAsync method, and retrieve it from the eventargs:
List<string> list = new List<string>(){"hello", "Goodbye"};
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerAsync(list);
...
}
void worker_DoWork(object sender, DoWorkEventArgs e)
{
object o = e.Argument;
List<string> list = o as List<string>;
if (list != null)
{
...
}