Все, что вам нужно знать о BackgroundWorker, включено msdn .
Как говорится в статье:
Чтобы получать уведомления об обновлениях, обработайте событие ProgressChanged.
Обновление:
Прочитав дополнительные вопросы Мартина и учитывая, что у него есть класс, который до сих пор выполнял свою работу, предположительно на переднем плане, я бы добавил следующее:
Рабочий класс несет ответственность за работу, поэтому он также обязан сообщать о своем прогрессе. Тот факт, что он порождает фоновую нить для выполнения работы, не касается формы.
Итак, я бы склонялся к тому, чтобы класс настроил BGW, обрабатывал его события ProgressChanged и затем вызывал свои собственные события (в потоке переднего плана), на которые затем могла подписаться сама форма. Я делаю тонну кодирования WinForms, используя эту технику, и она отлично работает.
Альтернативой было бы выставить BGW как открытое свойство рабочего класса и заставить форму обрабатывать его события напрямую. Но мне это не очень нравится, так как это делает форму зависимой от реализации рабочего класса. Как правило, это плохо.