從this後,我被告知,下面的代碼段遭受「關閉循環變量的令人震驚的行爲」。關閉在C循環變量#
foreach (Canidate canidate in allCanidates)
{
Thread newThread = new Thread(delegate()
{
BusyWait(canidate);
});
newThread.Start();
}
我把它切換到這一點:
foreach (Canidate canidate in allCanidates)
{
var can = canidate;
Thread newThread = new Thread(delegate()
{
BusyWait(can);
});
newThread.Start();
}
但我的老闆一直堅持認爲它會從同樣的問題受到影響。我用this鏈接來嘗試解決這個問題。有人可以幫助我正確地解決問題,以便我的代碼能夠正確執行。這個問題對我來說都是新的,我不確定我是否完全理解它。
你的老闆是錯的。 – 2012-03-08 22:28:35
並有尖尖的頭髮。 – 2012-03-08 22:29:11
任何人都可以解釋這是爲什麼嗎?我不知道我完全理解它。這兩者之間的區別究竟是什麼,因爲他們看起來像是在做同樣的事情。但是,當我運行它時,我知道它們不是。 – user489041 2012-03-08 22:33:00