сначала, чтобы использовать PostWorkerReportProgress, вы должны сообщить фоновому рабочему объекту, что он может использовать функциональность ReportProgress.
Теперь, чтобы перейти к событию PostWorkerCompleted, просто завершите метод DoWorks. Выход из этого метода автоматически генерирует событие WorkerCompleted. Если вы разрешаете ОТМЕНУ фонового работника, то перед выходом из него убедитесь, что вы установили e.Cancel = true в методе DoWorks.
Для отчетов Progress необходимо явно вызвать функцию объекта backgroundworker, который делает это.
backgroundwrkrObject.ReportProgress(int)
backgroundwrkrObject.ReportProgress(int, object)