for (int k = 0; k < ThreadCount + 1; k++)
{
tasks[k] = Task.Factory.StartNew(() =>
{
ScoreConcurrenMC(recCount, k);
});
{
tasks[k] = Task.Factory.StartNew(() =>
{
ScoreConcurrenMC(recCount, k);
});
}
这是lambda表达式延迟执行的问题,追加临时变量即可解决
for (int k = 0; k < ThreadCount + 1; k++)
{
int kk = k;
tasks[k] = Task.Factory.StartNew(() =>
{
ScoreConcurrenMC(recCount, kk);
});
}
本文探讨了在使用C#进行多线程编程时遇到的Lambda表达式闭包问题,并提供了一种通过引入临时变量来解决该问题的方法。
1096

被折叠的 条评论
为什么被折叠?



