Как можно безопасно использовать подключение QSqlDatabase с разных потоков?
У меня есть экземпляр подключения к БД (QSqlDatabase). Также у меня есть основная форма на которой, допустим, есть кнопка выбора картинки пользователя. Как мне правильно организовать загрузку этой картинки в базу? Очевидно, что в этом основном потоке, где у меня GUI, это делать неправильно, поскольку окно программы может зависнуть, хотя на самом деле программа просто выполняет загрузку картинки и окно в это время "ждёт".
Как я поняла нужно делать это в отдельном потоке, но где-то в документации Qt сказано, что "соединение QSqlDatabase может использоваться только из потока, который его создал". Есть также вариант использовать мьютексы и статическое объявление, но не до конца понимаю что и как.
А если в то время, как выполняется один запрос к БД, пользователь попытается еще что-то сохранить? Тогда получится что старый запрос QSqlQuery еще не выполнился, а уже поступил новый запрос. Или я что-то не понимаю? Просто одного отдельного потока, который работает с БД, может быть мало как мне кажется.
dariasweetsun, разные потоки общаются через очередь событий, так что новый запрос просто выполнится после завершения старого. Я не знаю, какая у вас используется СУБД и что у неё там с многопоточностью под капотом, но вероятнее всего, она не умеет обрабатывать одновременно два запроса на запись в одну и ту же таблицу одновременно, что толку, что вы писать в своём коде будете в 10 потоков?