【发布时间】:2015-10-26 11:58:33
【问题描述】:
我正在编写一个 QT 应用程序来监控一些统计数据。在主窗口中,您选择多个(或仅一个)项目并为它们打开一个图形窗口。每个项目都是从不同的线程轮询的。
每次获取数据都是写在SQLite数据库中,但是遇到了一个问题:
我正在使用 SSD 驱动器的计算机上创建此应用程序,它运行正常,但是当我在具有 HDD 的计算机上运行它时,应用程序崩溃(崩溃发生在 QT sqlite dll 文件 - qsqlite.dll 中)。我用谷歌搜索了这个问题,发现很多人说不建议将 sqlite 用于此类用途。当我写入数据库时,我还使用 QMutex 来锁定/解锁这些部分,但不幸的是它不能解决问题。
有没有办法可以为此使用 sqlite 或者我必须寻找不同的数据库,例如 postgres ?
感谢您的宝贵时间!
【问题讨论】:
-
你在使用 sqlite 的锁定和/或事务吗?
-
从每个线程打开一个单独的数据库连接。不要在线程之间共享相同的数据库连接。
标签: c++ multithreading qt sqlite