我需要修复一些代码来打印“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
有什么建议吗?
答案 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