我有一个异步方法,出于这个问题的目的,可以将其简化为这样的语法:
public async Task<int> PositiveParallelAnticipation()
{
//some operations
List<List<MatchResult>> ranges = SplitRange(possibilityList, 4);
var tasks = new List<Task<int>>();
for (int i = 0; i < ranges.Count; i++)
{
//some more operations
//!here is the problem!
tasks.Add(Task.Run(() => PositiveAnticipationLoop(new Team(target), currWorkingTeamList, currworkingMatchList, startingPossibility, ranges[i])));
}
int[] results = await Task.WhenAll(tasks);
return results.Max();
}
当我在调试模式下运行它时,一切都很好,但是当我在未调试的情况下运行它时,会抛出这样的错误(尝试获取范围[i]时):
索引在数组的边界之外。”
我想念什么?而且顺便说一句,我不对范围列表进行变异,也不对我未进行的任何操作进行增减。