Is List<T> thread-safe for reading?

Viewed 14297

Is the following pseudocode thread-safe ?

IList<T> dataList = SomeNhibernateRepository.GetData();

Parallel.For(..i..)
{
    foreach(var item in dataList)
    {
       DoSomething(item);
    }
}

The list never gets changed, it's only iterated and read in parallel. No writing to fields or something like that whatsoever.

Thanks.

4 Answers
Related