【直接上代码】
List<int> list = new List<int>();
for(int i = 0; i < taskCount;i++)
{
list.Add(i);
}
int ii=0;
var tasks= list.Select(i => {
ii+=1;
return Task.Run(() => testData(new testModel() { startIndex = i * (100 / 5) }));
});
//【1】
Task.WhenAll(tasks);
//【2】
private void testsData()
{
}
【代码执行顺序】
代码执行到【1】时,ii的值还是0
代码执行到【2】时,ii的值是20,说明是先在select里面执行循环后才执行下一行代码,也说明
如果把Task.WhenAll(tasks);代码注释,那么执行到【2】时,ii的是肯定都是0,因为他们这样就存在异步执行的情况