ConcurrentDictionary и ConcurrentBag для AddOrUpdate параллельно ⇐ C#
ConcurrentDictionary и ConcurrentBag для AddOrUpdate параллельно
Правильно ли использовать ConcurrentDictionary и ConcurrentBag для значений AddOrUpdate.
В основном пытался сделать следующее:
[*]
имею файл с миллионами записей и пытаюсь обработать и извлечь его в объект.
[*]
И запись такая: пара ключ-значение, Ключ=WBAN и значение как объект.
var cd = new ConcurrentDictionary(); число интервалов = 0; foreach (строка var в File.ReadLines(path).AsParallel().WithDegreeOfParallelism(5)) { var sInfo = line.Split(new char[] { ',' }); cd.AddOrUpdate(sInfo[0], новый ConcurrentBag(){новые данные() { WBAN = sInfo[0], Дата = string.IsNullOrEmpty(sInfo[1])? "" : sInfo[1], время = string.IsNullOrEmpty(sInfo[2]) ? "" : sInfo[2] } } , (oldKey, oldValue) => { oldValue.Add(новые данные() { WBAN = sInfo[0], Дата = string.IsNullOrEmpty(sInfo[1])? "" : sInfo[1], время = string.IsNullOrEmpty(sInfo[2]) ? "" : sInfo[2] }); вернуть старое значение; } ); }
Правильно ли использовать ConcurrentDictionary и ConcurrentBag для значений AddOrUpdate.
В основном пытался сделать следующее:
[*]
имею файл с миллионами записей и пытаюсь обработать и извлечь его в объект.
[*]
И запись такая: пара ключ-значение, Ключ=WBAN и значение как объект.
var cd = new ConcurrentDictionary(); число интервалов = 0; foreach (строка var в File.ReadLines(path).AsParallel().WithDegreeOfParallelism(5)) { var sInfo = line.Split(new char[] { ',' }); cd.AddOrUpdate(sInfo[0], новый ConcurrentBag(){новые данные() { WBAN = sInfo[0], Дата = string.IsNullOrEmpty(sInfo[1])? "" : sInfo[1], время = string.IsNullOrEmpty(sInfo[2]) ? "" : sInfo[2] } } , (oldKey, oldValue) => { oldValue.Add(новые данные() { WBAN = sInfo[0], Дата = string.IsNullOrEmpty(sInfo[1])? "" : sInfo[1], время = string.IsNullOrEmpty(sInfo[2]) ? "" : sInfo[2] }); вернуть старое значение; } ); }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Метод ConcurrentDictionary AddOrUpdate, вызывающий исключение IndexOutOfRangeException
Anonymous » » в форуме C# - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-