VB.Net中的多线程循环

时间:2014-04-10 11:49:27

标签: vb.net multithreading

我有两个“FOR”循环和一个排列(每个循环3个)。排列创建一个3个字符的字符串,并通过循环遍历一个字符数组来工作。这对我来说很好。这是工作部分。

Dim chars() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}

        For varXR = 25 To 35
            For varEVD = 0 To 99
                For Each x1 In chars
                    For Each x2 In chars
                        For Each x3 In chars

                        Console.Writeline(varXR & varEVD & x1 & x2 & x3)

                        Next
                    Next
                Next
            Next
        Next

我需要为每个varEVD(100个线程)创建一个线程,并使每个线程与置换循环一起工作。当这些线程完成后,继续前进并为下一个varXR继续完全相同的事情..任何例子都将受到赞赏。

哦,我需要每个varEVD循环都有相同的范围(0-99)。谢谢!

编辑:该应用程序是一个控制台应用程序!

1 个答案:

答案 0 :(得分:0)

创建100个线程不是一个好主意。并行处理仍然受到核心数量的限制。

很难看到你在这里尝试做什么,但你可以从循环中删除一些代码。如果你真的需要写一个WriteLine,那么如果你有线程,这将是你代码中最慢的部分。

    Dim chars() = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
    Dim combinations As New List(Of String)

    For Each x1 In chars
        For Each x2 In chars
            For Each x3 In chars
                combinations.Add(x1 & x2 & x3)
            Next
        Next
    Next

    For varXR = 25 To 35
        For varEVD = 0 To 99
            For Each c As String In combinations
                Console.WriteLine(varXR & varEVD & c)
            Next
        Next
    Next
相关问题