【发布时间】:2014-05-23 16:36:52
【问题描述】:
我在 Resharper 中收到“访问修改后的闭包”错误。有没有办法将任务作为参数传递给 lambda 而不是依赖闭包?
while (!Quitting && TaskQueue.Any())
{
foreach (var task in TaskQueue.ToArray())
{
if (Quitting || task.Code == TaskCode.Quit)
{
Quitting = true;
return;
}
if (!task.Runnable)
{
continue;
}
var thread = new Thread(() =>
{
try
{
task.Callback();
}
catch (Exception e)
{
if (task.Error != null)
{
task.Error(e);
}
}
});
thread.Start();
}
}
【问题讨论】:
标签: c# multithreading lambda closures resharper