Parallel中因?yàn)閘istStatic再改變,導(dǎo)致countList也改變,如果遍歷countlist那么就會(huì)報(bào)錯(cuò)。
static void Main(string[] args)
{
Parallel.For(0, 20, (i) =>
{
List<int> countList = null;
outList(out countList);
listStatic.Add(5);
//此處遍歷有可能會(huì)報(bào) 集合已修改,無法遍歷。
foreach (var item in countList)
{
Console.WriteLine(item);
}
});
Console.Read();
}
static List<int> listStatic = new List<int>();
static void outList(out List<int> listOut)
{
listOut = listStatic;
listStatic.Add(1);
listStatic.Add(2);
listStatic.Add(3);
listStatic.Add(4);
listStatic.Add(4);
}