如何避免捕获变量?
|
我有一个问题
foreach(var category in categories)
{
foreach(var word in words)
{
var waitCallback = new WaitCallback(state =>
{
DoSomething(word, category);
});
ThreadPool.QueueUserWorkItem(waitCallback);
}
}
当DoSomething
执行时,它会为每个捕获的变量接收最新值,而不是我想要的值。我可以想像一个解决方案,但是可以想象你们可以提出更好的解决方案
没有找到相关结果
已邀请:
4 个回复
桔马牛
扑北爱
这是简单易懂的。它说明了开发人员的意图,而不会用额外的变量使代码混乱(就像解决该问题的默认方式一样)。
骚瓤
玖料萄