C# Parallel的困惑

2016-08-31  本文已影响0人  johnwonder

Parallel中因为listStatic再改变,导致countList也改变,如果遍历countlist那么就会报错。

    static void Main(string[] args)
        {

            Parallel.For(0, 20, (i) =>
            {

                List<int> countList = null;

                outList(out countList);
                listStatic.Add(5);
                //此处遍历有可能会报 集合已修改,无法遍历。
                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);
        }
上一篇 下一篇

猜你喜欢

热点阅读