从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