Я делаю кое-что с SQLite и хочу, чтобы потоки блокировались, пока я нахожусь в «транзакции». Будет ли приведенный ниже код работать правильно?
public class ThreadSafeSQLiteConnection
{
private readonly SQLiteConnection connection;
public static object TRANSACTION_LOCK = new Object();
public void BeginTransaction() {
Monitor.Enter(TRANSACTION_LOCK);
connection.BeginTransaction();
}
public void Commit() {
connection.Commit();
Monitor.Exit(TRANSACTION_LOCK);
}
public void Rollback() {
connection.Rollback();
Monitor.Exit(TRANSACTION_LOCK);
}
}
Если в этом случае у меня открыта транзакция, никакие потоки не смогут правильно ввести метод BeginTransaction
?