如何修复我的代码以正确打印“Hello World!”

时间:2011-02-09 18:59:41

标签: .net

我需要修复一些代码来打印“Hello World!”。出于某种原因,它打印出所有乱码的字母。

Sub Main()
    Dim s As String = "Hello World!"
    Parallel.For(0, s.Length, Sub(i)
                                Console.Write(s(i))
                              End Sub)
    Console.Read()
End Sub

有什么建议吗?

3 个答案:

答案 0 :(得分:7)

Sub Main()
    Console.Write("Hello World!")
End Sub

如果你真的必须一次打印一个字符,你可以写:

Sub Main()
    dim s as string = "Hello World!"
    dim i as integer
    for i=0 to s.length-1
        Console.Write(s(i))
    end for
End Sub

答案 1 :(得分:5)

并行执行的重点是它们是并行完成的,而不是顺序完成的。并行执行对此任务没有意义,因为顺序非常重要。

通过异步/并行执行,每个任务被拆分为与其他任务并行运行,并且不会等待任何先前的任务完成。在你的情况下,一些后来排队的任务在排队之前完成,然后以看似随机的顺序重新排序这些字母。

答案 2 :(得分:0)

也许您可以使用ParallelOptions参数并指定所需的并行度。在这种情况下,您不需要并行性。


Sub Main()

        Dim s As String = "Hello World!"

        Dim p As New ParallelOptions()
        p.MaxDegreeOfParallelism = 1
        p.TaskScheduler = Nothing
        p.CancellationToken = Nothing

        Parallel.For(0, s.Length, p, Sub(i)

                                         Console.Write(s(i))

                                     End Sub)

        Console.Read()

    End Sub