在Windows Store应用中使用sqlite进行多线程 - c#

我的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调用)

sqlite3:在Windows 10上找不到Python 3命令 - python

我在Windows 10上安装了Python 3.6.5。我看到在\\ Python \ Python36 \ Lib目录中有一个sqlite3文件夹。我在环境变量中添加了Python PATH。但是,我无法从Powershell或Git Bash运行命令“ sqlite3”。它会说“找不到命令”。我做错什么了? 参考方案 Python的sqlite库可能已…

如何使用C#或C / C++在Windows 7中获取智能卡阅读器名称? - c#

我正在尝试制作一个将使用C .dll(不幸的是,.dll没有好的文档)来访问智能卡的C#程序。 .dll的功能之一使用读取器的名称作为参数。我的问题是我不知道该如何命名。在寻找答案之后,我在这里的示例中发现了与我所需要的东西类似的内容:http://msdn.microsoft.com/en-us/library/aa379803%28VS.85%29.as…

Windows 8 Metro应用程序的图表 - c#

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely …

在运行时以编程方式读取目标平台 - c#

我想知道(出于记录目的)商店应用程序是否已针对x86 / x64 / AnyCPU / Win32进行了编译。我什么都找不到,但是似乎该信息在运行时应该可用。 参考方案 转到项目属性,然后为每个平台添加“条件编译”符号(在“构建”选项卡中)。假设PLATFORM_X86,PLATFORM_X64和PLATFORM_ANYCPU(您也可以从命令行使用/D选项)…

Windows Phone WNS通知导航到特定页面 - c#

它是Windows运行时,Windows Phone专用项目。我正在使用Azure和Azure通知中心。所以我的问题是,有谁愿意如何导航到某些特定页面并发送ID等参数。这是我的吐司模板,如字符串中所述: var toast = @"<toast><visual><binding template=""…