Я прочитал много статей о синхронизации потоков, операторов блокировок и условий гонки (с C#). К сожалению, некоторые из них отказываются полностью понимать мой мозг.Безопасность потоков с общей коллекцией
У меня есть ситуация, когда у меня есть общий объект, содержащий Lists<>
различных классов, предназначенных для чтения, записи, создания и удаления записей базы данных. Этот объект разделяется между разными потоками в течение его жизненного цикла (время жизни приложения). Моя проблема заключается в том, что я не могу решить, как мне защитить/заблокировать этот объект, чтобы его можно было безопасно манипулировать без искажения данных.
Я уже вижу проблемы возникают нечасто - иногда пустые строки баз данных будут спасутся - Я полагаю, это сделать с другим потоком изменяющего объекта между запросами к базе данных «INSERT
» и «UPDATE
» в классах Save() метод ,
Мое ощущение, что подходящее решение lock
, но я не могу решить, где это должно быть.
Любая помощь или понимание того, где я пошла не так, получили широкую оценку!
Вы забыли включить ваш код? Без этого мы не можем понять, что случилось. –