In the last question Display progress bar while doing some work in C#?, people has recommend use of BackgroundWorker. I thought in BackgroundWorker DoWork method you can update the GUI directly, but why this function call need to be called using Invoke.
toolTip.SetToolTip(button, toolTipText);
The
RunWorkerCompletedcallback is marshalled onto the UI thread;DoWorkis not.You should use the
ReportProgressmethod to update the UI duringDoWorkprocessing.See: How to: Run an Operation in the Background