C# Parallel的困惑

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);
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容