gpt4 book ai didi

c# - 在 C# 中关闭循环变量

转载 作者:太空狗 更新时间:2023-10-29 21:46:20 34 4
gpt4 key购买 nike

来自 this帖子中,我被告知以下代码部分遭受了“关闭循环变量的恶劣行为”。

    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链接以尝试解决此问题。有人可以帮助我正确解决问题,以便我的代码正确执行。这个问题对我来说是全新的,我不确定我是否完全理解它。

最佳答案

关闭稍后更改值的变量是导致问题的原因。

  • 候选人 改变循环的每一“圈”并且导致问题。
  • can 是围绕循环的每一“圈”新创建的,永远不会改变,并且不会导致问题。

关于c# - 在 C# 中关闭循环变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626051/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com