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.