下面代碼輸出結果是什麼?爲什麼?如何改進它?

int a = 0;
System.Threading.Tasks.Parallel.For(0, 100000, (i) =>
{
    a++; 
});
Console.Write(a);

解決方案如下

            int a = 0;
            object lockObj= new object();
            System.Threading.Tasks.Parallel.For(0, 100000, (i) =>
            {
                lock (lockObj)
                {
                    a++;
                }
            });
            Console.Write(a);

結果就正常了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章