我想使用这样的并行循环处理一些东西:
public void FillLogs(IEnumerable<IComputer> computers)
{
Parallel.ForEach(computers, cpt=>
{
cpt.Logs = cpt.GetRawLogs().ToList();
});
}
好的,它工作正常。但是如果我希望 FillLogs 方法返回一个 IEnumerable 怎么办?
public IEnumerable<IComputer> FillLogs(IEnumerable<IComputer> computers)
{
Parallel.ForEach(computers, cpt=>
{
cpt.Logs = cpt.GetRawLogs().ToList();
yield return cpt // KO, don't work
});
}
编辑
这似乎是不可能的......但我使用这样的东西:
public IEnumerable<IComputer> FillLogs(IEnumerable<IComputer> computers)
{
return computers.AsParallel().Select(cpt => cpt);
}
但是我把cpt.Logs = cpt.GetRawLogs().ToList();
指令放在哪里