,看到一根碼在線,指出調用這樣一個線程導致這種不確定性輸出「0223557799」什麼的。(你明白了吧)C#多線程按值或引用傳遞?
for (int i = 0; i < 10; i++)
new Thread (() => Console.Write (i)).Start();
這是由於給出的原因這個:
「問題是i變量在整個循環的整個生命週期中引用了相同的內存位置,因此每個線程都會調用Console.Write,這個變量的值可能隨着它的運行而變化!
但是,傳統上講,當參數值傳遞 - 每個新的線程調用應該發送i它的增量順序權?只有價值觀經過引用,上述理由纔有效。因此,在C#多線程中,值是否通過引用傳遞?
我是C#的新手,請理解問題是否幼稚。
int temp = i;將其置於循環內並通過溫度,slaks是正確的。 – terrybozzio