这样的循环怎么才能放到另一个线程里,结果在RichTextBox1中显示

这样的循环如何才能放到另一个线程里,结果在RichTextBox1中显示。
上一个问题问的是列举出指定位数所有的数字和字母组合的问题,在此感谢高手们的解答。

新问题出现了,我想把这个循环的过程放到一个线程里,最后将结果显示到RichTextBox1控件中。在循环的过程中在进度条控件显示进度。

否则循环过程中,窗体处于冻结状态,无法响应操作。循环代码如下:

Dim Letter As String() = {" ", "0", "1", "2", "3", "4", _
     "5", "6", "7", "7", "9", "a", _
     "b", "c", "d", "e", "f", "i", _
     "j", "k", "l", "m", "n", "o", _
     "p", "q", "r", "s", "t", "u", _
     "v", "w", "x", "y", "z"}
Dim aaa As String
Dim query = From x In Letter From y In Letter _
            From z In Letter Where x + y + z <> "   " + (x + y + z).Trim() Select (x + y + z).Trim
For Each s In query
    aaa = aaa & "|" & s.ToString
Next
Me.RichTextBox1.Text = aaa

------解决方案--------------------
避免程序挂起可以使用多线程。
http://download.****.net/detail/caozhy/4832657

如果要实现进度,得使用Linq Rx了。
------解决方案--------------------
不多说废话,直接上代码,需要定义1个backgroundworker控件,一个进度条progressbar1,一个按钮button1,一个Richtextbox。


'单击按钮,开始计算
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        bgWorker.RunWorkerAsync()
    End Sub

    '启动后台线程,开始计算
    Private Sub bgWorker_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles bgWorker.DoWork
        e.Result = Test()
    End Sub

    '报告进度
    Private Sub bgWorker_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles bgWorker.ProgressChanged
        ProgressBar1.Value = e.ProgressPercentage
    End Sub

    '显示计算结果
    Private Sub bgWorker_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgWorker.RunWorkerCompleted
        RichTextBox1.Text = e.Result
    End Sub

    '后台的计算程序
    Function Test() As String
        Dim Letter As String() = {" ", "0", "1", "2", "3", "4", _