Хорошо, я использовал блокировки совсем немного, но у меня никогда не было такого сценария раньше. У меня есть два разных класса, которые содержат код, используемый для изменения одной и той же базы данных MSAccess:
public class DatabaseNinja
{
public void UseSQLKatana
{
//Code to execute queries against db.TableAwesome
}
}
public class DatabasePirate
{
public void UseSQLCutlass
{
//Code to execute queries against db.TableAwesome
}
}
Это проблема, потому что транзакции в базе данных не могут выполняться параллельно, и эти методы (UseSQLKatana и UseSQLCutlass) вызывают разные потоки.
В моих исследованиях я вижу, что использование плохой практики для использования публичного объекта как объекта блокировки, так как я могу заблокировать эти методы, чтобы они не запускались в тандеме? Является ли ответ просто иметь эти методы в одном классе? (Это действительно не так просто в моем реальном коде)