That would be spoon-feeding. I've already provided an example that passes data into the DoWork event handler via the RunWorkerAsync method and executes a For loop based on that input. How much more related to your own project do you want? The steps are very simple:

1. Gather up any data from the UI that will be needed by the background task.
2. Call RunWorkerAsync and pass the data gathered in step 1.
3. Handle DoWork and get the data passed in step 2 from the e.Argument property.
4. Do the work in the DoWork event handler.
5. If you need to update the UI during the task, call ReportProgress and pass and data required.
5a. Handle ProgressChanged, get the data passed in step 5 from the e.ProgressPercentage and/or e.UserState properties and update the UI.
6. If you need to update the UI after the task, assign any data required to the e.Result property.
6a. Handle RunWorkerCompleted, get the data passed in step 6 from the e.Result property and update the UI.

Every one of those steps is demonstrated in my CodeBank thread. If you've followed my instructions so far then you have put all the code relating to the task in its own method. It's obvious from that method where you are using data that comes from a control so that is the data that you need to gather for step 1. Show me that.