警惕C#版本差异多线程中的foreach陷阱
同样的代码,不同的结果
当你使用foreach循环结合Task.Factory.StartNew创建多线程任务时,可能会遇到以下诡异现象:
- 在VS2010(.NET 4.0 + C# 4.0) 下运行,多个线程打印出重复的内容
- 在VS2019(.NET 4.0 + C# 8.0) 下运行,结果却完全正常
示例代码
void FileParallelExecute(string file)
{
Console.WriteLine("FileParallelExecute file: " + file);
}
List<string> fileList = new List<string<