Если у меня есть
Dictionary<int, StreamReader> myDic = new Dictionary<int, StreamReader>
//Populate dictionary
Один поток делает
myDic[0] = new StreamReader(path);
Другой поток выполняет
myDic[1] = new StreamReader(otherpath)
Является ли этот поток безопасным, потому что фактический элемент в изменяющемся словаре отличается от того, который находится в другом потоке, или я получу InvalidOperationException: Collection was modified