我在 iOS 应用程序中使用 sqlite3 并且多次遇到一个非常奇怪的问题。
我正在使用 WAL,我的所有写入都发生在一个托管线程上,该线程一次只允许 1 个操作,我的读取使用不同的数据库句柄,一切正常。我看到的问题是有时我的读取句柄会进入这种奇怪的状态,它不会读取提交的数据。就像它有一个未提交的读取事务......
我可以成功写入数据库,并将结果导出到我的计算机,在那里我可以看到新写入的结果。但是,我的读取似乎是在较早的时间点访问数据库......就像他们被卡住了一样。如果我关闭应用程序并重新打开它,它们会很好并且它们会读取新提交的数据,但我想知道我的应用程序是如何陷入这种状态的。
任何帮助,将不胜感激。提前致谢。