¿El siguiente pseudocódigo es seguro para subprocesos?¿La lista es <T> segura para lectura de subprocesos?
IList<T> dataList = SomeNhibernateRepository.GetData();
Parallel.For(..i..)
{
foreach(var item in dataList)
{
DoSomething(item);
}
}
La lista nunca cambia, solo se repite y se lee en paralelo. No escribir en campos o algo así.
Gracias.
que es relativamente fácil: que sea un miembro privado en una clase que sólo lleva a cabo el acceso de lectura a la lista, posiblemente exponiendo los valores a través de otros miembros. La clase necesita mantenerse bajo control, pero es una sola pieza de código a tener en cuenta. –