Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Me.BackgroundWorker1.RunWorkerAsync()
    End Sub

    Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

        For i As Integer = 0 To 9
            Me.BeginInvoke(Sub(cnt)
                               Dim b = New Button()
                               b.Text = cnt.ToString()
                               b.Top = b.Height * cnt
                               Me.Controls.Add(b)

                           End Sub,
                           New Object() {i})
        Next
    End Sub
End Class