При добавлении ключа в словарь происходит сбой, если я не блокирую его и выдает разумное исключение NullReferenceException
Редко иногда также происходит сбой при добавлении элемента в значение словаря), что странно ...
У меня есть еще один вопрос.Файлы в текстовом формате.Иногда их чтение занимает 1890 мс, а иногда - в 10 раз больше.Пробеги сделаны последовательно.Есть ли вероятность, что что-то внезапно загружает буфер ввода-вывода
Любая рекомендация хотя бы стабилизировать это ...
private static void ParallelReadAndCalculate(FileInfo[] files)
{
Stopwatch sw1 = Stopwatch.StartNew();
while (!Parallel.ForEach(files, (FileInfo file) => ReadFileToEnd(file)).IsCompleted) ;
Console.WriteLine(sw1.ElapsedMilliseconds);
}
private static void ReadFileToEnd(FileInfo file)
{
string key = file.Name.Split('.')[0];
lock (ListOfCompanyData)
if (!ListOfCompanyData.ContainsKey(key))
{
ListOfCompanyData.Add(key, new List<string>(19800));
}
string line = "";
using (StreamReader streamReader = (new StreamReader(file.FullName)))
{
while ((line = streamReader.ReadLine()) != null) {
// this is giving KeyNotFoundException sometimes and others, do I need to lock here given the fact that I am accessing different references synchronously
ListOfCompanyData[key].Add(line);
}
}
}