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