Mike Dimmick wrote:
The new piece is, I think, the BackgroundWorker class.

Looks useful. I can see a lot of potential with BackgroundWorker.ProgressChanged.

But what happens when DoWork contains a call to an object with events wired up to the UI thread? What Boolean will InvokeRequired equal inside the event handler(s)?