I don't have time for a full code sample, but here's a gentle nudge:
You're on the right track. Investigate the
System.ComponentModel.BackgroundWorker class (VB2005). The class runs
code on a seperate thread, while also presenting events that get
raised on the main WinForms thread. These events allow you to both
report progress and return a result when the second thread completes.
Along with the PercentComplete property, the ProgressChangedEventArgs
class has both a UserState (Object) property that you can use to pass
back the graphical data (bitmap, image, or some such) which represents
the current progress. This will allow you to hand back to the main
thread the current image you want displayed, while leaving the
application responsive.
Note: Make sure you set the WorkerReportsProgress property on the
BackgroundWorker to true.
Good Luck,
-Mark