Estoy utilizando el código de abajoLista de seguridad <T> hilo
var processed = new List<Guid>();
Parallel.ForEach(items, item =>
{
processed.Add(SomeProcessingFunc(item));
});
es el hilo conductor el código de seguridad? ¿Hay alguna posibilidad de que la lista procesada se corrompa? ¿O debería usar un candado antes de agregar?
var processed = new List<Guid>();
Parallel.ForEach(items, item =>
{
lock(items.SyncRoot)
processed.Add(SomeProcessingFunc(item));
});
gracias.
¿Has mirado en MSDN? Aquí: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx#c9721fa0-1cd9-4a21-818c-98d164c9fc14 –
Ver http://stackoverflow.com/questions/4779165/parallel-foreach-loop -comportamiento raro. – mellamokb
@Martinho: Sí. Leí que la lista no es segura para subprocesos. Pero no puedo entender que incluso si se agregan múltiples hilos a la lista, ¿cómo puede dañar la lista? –
stackoverflowuser