Is the following pseudocode thread-safe ?
IList dataList = SomeNhibernateRepository.GetData();
Parallel.For(..i..)
{
foreach(var item in dataLi
Yes, List is fine to read from multiple threads concurrently, so long as nothing's writing.
From the documentation:
A
Listcan support multiple readers concurrently, as long as the collection is not modified.
EDIT: Note that your code doesn't necessarily use List - just an IList. Do you know the type returned by GetData()? If you're in control of GetData() you probably want to document that the list returned by it is thread-safe for reading, if it's actually returning a List.