我想用並行循環這樣處理事情:Parallel.Foreach +良率回報?
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();
指令
你的'IEnumerable'return-type不會帶負載。 –