This allows the BackgroundWorker to be cancelled in between tasks
bgWorker.WorkerSupportsCancellation = true;
This allows the worker to report progress between completion of tasks…
bgWorker.WorkerReportsProgress = true;
// this must also be used in conjunction with the ProgressChanged event