Parallel.Foreach + rendimento retornado?
Eu quero processar algo usando loop paralelo como este:
public void FillLogs(IEnumerable<IComputer> computers)
{
Parallel.ForEach(computers, cpt=>
{
cpt.Logs = cpt.GetRawLogs().ToList();
});
}
Ok, funciona bem. Mas como fazer se eu quiser que o método FillLogs retorne um IEnumerable?
public IEnumerable<IComputer> FillLogs(IEnumerable<IComputer> computers)
{
Parallel.ForEach(computers, cpt=>
{
cpt.Logs = cpt.GetRawLogs().ToList();
yield return cpt // KO, don't work
});
}
EDITA
Parece não ser possível ... mas eu uso algo assim:
public IEnumerable<IComputer> FillLogs(IEnumerable<IComputer> computers)
{
return computers.AsParallel().Select(cpt => cpt);
}
Mas onde eu coloquei ocpt.Logs = cpt.GetRawLogs().ToList();
instrução