【发布时间】:2020-02-29 21:10:30
【问题描述】:
在以下代码块中:
static void Main(string[] args)
{
List<int> arr00 = new List<int>() {100, 0, 3, 8, 21};
int index = 0;
int tasks = 0;
foreach (int num in arr00)
{
var innerIndex = index;
Task.Run(async () =>
{
Console.WriteLine($"{index}, {innerIndex}: {num}");
tasks++;
});
index++;
}
while (tasks < index) { }
}
输出是
5, 1: 0
5, 4: 21
5, 2: 3
5, 3: 8
5, 0: 100
异步任务如何保持正确的 innerIndex 计数,而不是提升的索引?
谢谢
【问题讨论】:
标签: c# concurrency async-await