我的Windows Store应用程序有一个小问题。问题是作为后台任务可以从服务器提取数据并将新数据插入本地数据库,而与此同时,用户可以导航到从该数据库提取的页面,因此应用程序将崩溃,因为该数据库是锁定,虽然这种情况很少见,但确实会发生。

所以问题是,我可以通过什么方法来解决这个问题,以便一个连接要么等待另一个完成,要么类似地彼此不冲突?

我正在使用sqlite-net作为我所有东西的sql包装类。有什么建议?

最佳答案

EkoostikMartin是正确的。使用sqlite-net,您需要执行以下操作:

try {
    db.Execute ("PRAGMA journal_mode = WAL;");
} catch (SQLiteException e) {
    if (e.Result != SQLite3.Result.Row)
        throw e;
}


(不确定在所有平台上是否都需要catch,但是在WP8上这对我来说是必需的,因为journal_mode PRAGMA返回一行,并且在这种情况下抛出Execute调用)

关于c# - 在Windows Store应用中使用sqlite进行多线程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22236533/

10-11 00:04