В моем приложении UWP у меня есть класс с именем DBContext, который обеспечивает прямое соединение с БД SQLite одноэлементным способом. У меня есть несколько тяжелых операторов записи в БД для периодического выполнения, которые могут занять более 10 секунд.
Мой вопрос заключается в том, что происходит, когда 1 поток запрашивает соединение, и мой DBContext предоставит его, и это соединение запускает транзакцию, для завершения которой требуется 10 секунд.
Теперь предположим, что другой поток также запрашивает соединение, и мой класс DBContext будет возвращать то же соединение, которое было создано для вышеупомянутой задачи (поскольку это одиночный код), и этот поток также использует то же соединение и пытается записать в тот же SQLite. DB
ПРИМЕЧАНИЕ. Это реальный сценарий, и я получаю исключения «Занят» и «БД заблокированы» из SQLite. Пожалуйста, дайте мне знать хороший подход к доступу к БД, включая лучшие практики использования SQLite в UWP.
ПРИМЕЧАНИЕ. Режим WAL также включен в SQLite, но все еще получает исключение «Занят».
Заранее спасибо.