【发布时间】:2015-10-06 06:58:58
【问题描述】:
我打算并行运行两个任务并等待它们完成。这是我的两个任务:
Private Async Function tempWorker1() As Task
For i = 1 To 5000
If i Mod 100 = 0 Then
Console.WriteLine("From 1:{0}", i)
End If
Next
End Function
Private Async Function tempWorker2() As Task
For i = 1 To 5000
If i Mod 100 = 0 Then
Console.WriteLine("From 2:{0}", i)
End If
Next
End Function
我将它们运行为:
Dim task1 As Task = tempWorker1()
Dim task2 As Task = tempWorker2()
Await Task.WhenAll(task1, task2).ConfigureAwait(False)
但是,我不认为这些任务是并行运行的。
这是我得到的输出:
From 1:1000
From 1:2000
From 1:3000
From 1:4000
From 1:5000
From 2:1000
From 2:2000
From 2:3000
From 2:4000
From 2:5000
如您所见,它完成了任务 1,然后完成了任务 2。我已将迭代次数增加到接近正无穷,并进行了检查 - 情况相同。
我们如何并行运行这两个任务?
【问题讨论】:
标签: .net asynchronous parallel-processing async-await task-parallel-library