 <p>You can use something along the lines of <code>pbDB.InvokeRequired</code> and if so, call <code>pbDB.Invoke</code> to perform your action back on the UI thread.</p> <p>You do not need the check if you know it will always be done on a separate thread than the UI thread.</p> <p><a href="http://www.codeproject.com/Articles/11848/Another-way-to-Invoke-UI-from-a-Worker-Thread" rel="nofollow">Here is a link to some code on this and other ways to accomplish this.</a></p> <p>You could also use a <a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx" rel="nofollow"><code>BackgroundWorker</code></a></p>