A winforms dialog is using BackgroundWorker to perform some asynchronous operations with significant success. On occasion, the async process being run by the background work
The BackgroundWorker will raise its ProgressChanged event and RunWorkerCompleted event on the UI thread (more accurately, it will post them to the thread using the currently established SynchronizationContext.)
But it will not simply enable you to raise arbitrary events on the UI thread. For that you should access the SynchronizationContext.Current and use the Post method.