2014-09-27 2 views
-1

Я прочитал много статей о синхронизации потоков, операторов блокировок и условий гонки (с C#). К сожалению, некоторые из них отказываются полностью понимать мой мозг.Безопасность потоков с общей коллекцией

У меня есть ситуация, когда у меня есть общий объект, содержащий Lists<> различных классов, предназначенных для чтения, записи, создания и удаления записей базы данных. Этот объект разделяется между разными потоками в течение его жизненного цикла (время жизни приложения). Моя проблема заключается в том, что я не могу решить, как мне защитить/заблокировать этот объект, чтобы его можно было безопасно манипулировать без искажения данных.

Я уже вижу проблемы возникают нечасто - иногда пустые строки баз данных будут спасутся - Я полагаю, это сделать с другим потоком изменяющего объекта между запросами к базе данных «INSERT» и «UPDATE» в классах Save() метод ,

Мое ощущение, что подходящее решение lock, но я не могу решить, где это должно быть.

Любая помощь или понимание того, где я пошла не так, получили широкую оценку!

+2

Вы забыли включить ваш код? Без этого мы не можем понять, что случилось. –

ответ

2

Вы ознакомились с новым пространством имен System.Collections.Concurrent, доступным в .NET Framework. Это пространство имена предоставляют несколько протекторов безопасных классов коллекций ...

Вот ссылка на MSDN страницы

Смежные вопросы