Вопрос

Обработка коллекции Entity через Parallel.Foreach

Всем доброго времени суток!

Нужна консультация.

У нас возникла необходимость обрабатывать большие коллекции Entity(изменять значение поля и обновлять) при этом что бы был задействован событийный слой.

Решили данным способом:

var bc = new BlockingCollection<Entity>();
// Наполнение коллекции
.....
Parallel.ForEach(bc, new ParallelOptions {
   MaxDegreeOfParallelism = Environment.ProcessorCount
}, entity => entity.UpdateInDB(false));

Вопрос в следующем будем ли мы ловить локи при использовании UserConnection entity, не создавая нового?

Подобные случаи с локами были на версии 7.8.


 

Нравится

1 комментарий

Алексей, здравствуйте!

Однозначно ответить на вопрос про блокировки нет возможности, они как могут возникать, так и нет. Но работать с данными в несколько потоков не рекомендуется.

Показать все комментарии