use*_*041 6 .net c# foreach syntactic-sugar
从这篇文章中,我被告知下面的代码部分遭受了"关闭循环变量的令人震惊的行为".
foreach (Canidate canidate in allCanidates)
{
Thread newThread = new Thread(delegate()
{
BusyWait(canidate);
});
newThread.Start();
}
Run Code Online (Sandbox Code Playgroud)
我把它换成了这个:
foreach (Canidate canidate in allCanidates)
{
var can = canidate;
Thread newThread = new Thread(delegate()
{
BusyWait(can);
});
newThread.Start();
}
Run Code Online (Sandbox Code Playgroud)
但我的老板一直坚持认为它会遭遇同样的问题.我使用此链接尝试解决此问题.有人可以帮我正确解决问题,以便我的代码能够正确执行.这个问题对我来说都是新的,我不确定我是否完全理解它.