You are going to have to create a delegate to add the controls for you, something like this:
** assuming your flow control is called 'flow'
private delegate sub delAddControl(ctrl as Control)
private sub AddControl(ctrl as Control)
if (flow.InvokeRequired) then
dim d as new delAddControl(AddressOf AddControl)
me.Invoke(d, ctrl)
else
flow.Controls.Add(ctrl)
end if
end sub
I have written this code 100 times in C# but my vb is a little rusty so im sure this wont compile but you should be able to see what im doing and get yours working from that.
**** EDIT *****
Oh Yea, then you can just call AddControl from your BackgroundWorker and the controls will get added to your UI without locking it up because the heavy lifting is being done in the BackgroundWorker.