Я разработал службу Windows на C #, которая получает события от внешнего оборудования.Для каждого полученного события база данных SQLite создает запись и сохраняет ее.
Проблема заключается в том, что время от времени возникает ошибка DBLock, поэтому мне нужно контролировать, что только один поток может записать в базу данных навремя.
Я создал эту переменную класса, которая создается в методе Service OnStart:
private DataWare.monitorEntities _db;
Затем, в случае, у меня есть:
void driver_Transaccion(object sender, AttendanceReader.MarcacionEventArgs e)
{
lock (_db)
{
/* Code that creates a record a does some other actions */
/* ......... */
_db.SaveChanges();
}
}
Проблема в том, что я продолжаю получать исключение DBLock, поэтому, похоже, блокировка инструкции (_db) не учитывается.
Любая помощь, пожалуйста?