Вы не можете изменять элементы управления непосредственно внутри потока, который их не создавал. Вы можете использовать метод invoke, как показано выше, или использовать событие BackgroundWorker ProgressChanged.
Код, используемый внутри BackgroundWorker DoWork:
myBackgroundWorker.ReportProgress(50); // Report that the background worker has got to 50% of completing its operations.
Код, используемый внутри BackgroundWorker ProgressChanged:
progressBar1.Value = e.ProgressPercentage; // Change a progressbar on the WinForm