que desea procesar algo con bucle en paralelo como esto:Parallel.Foreach + yield return?
public void FillLogs(IEnumerable<IComputer> computers)
{
Parallel.ForEach(computers, cpt=>
{
cpt.Logs = cpt.GetRawLogs().ToList();
});
}
Ok, funciona bien. Pero ¿Cómo hacer si quiero que el método FillLogs devuelva un IEnumerable?
public IEnumerable<IComputer> FillLogs(IEnumerable<IComputer> computers)
{
Parallel.ForEach(computers, cpt=>
{
cpt.Logs = cpt.GetRawLogs().ToList();
yield return cpt // KO, don't work
});
}
EDITAR
No parece ser posible ... pero yo uso algo como esto:
public IEnumerable<IComputer> FillLogs(IEnumerable<IComputer> computers)
{
return computers.AsParallel().Select(cpt => cpt);
}
Pero donde pongo la instrucción cpt.Logs = cpt.GetRawLogs().ToList();
Su tipo de retorno 'IEnumerable 'no tomará la carga. –