Sqlite 中的多线程

Anu*_*raj 5 c# sqlite multithreading

我正在使用 System.data.sqlite 连接到 Sqlite 数据库,根据Sqlite 文档,用户可以通过使用SQLITE_OPEN_NOMUTEX标志作为连接字符串的一部分来启用多线程。但我在连接字符串中找不到任何接受标志的键。默认启用吗?如果不是我该怎么做?

bry*_*mac 3

线程模式由编译时、启动或运行时选项决定。更多详细信息请参见此处:

http://www.sqlite.org/threadsafe.html

文档说序列化是默认值,这意味着您可以从多个线程使用它 - 它会保护您。如果你想要更多的并行性,可以使用多线程模式。

如果您在多线程模式下使用它,请确保对给定连接的调用是同步的。如果您想要并行工作,请使用多个连接并保护连接。

API 本身通过将 db 对象(连接)作为您顺序调用的许多函数的参数来暗示这一点。例如,查看您调用以获取错误的这些函数:

int sqlite3_errcode(sqlite3 *db); 
const char *sqlite3_errmsg(sqlite3*);
Run Code Online (Sandbox Code Playgroud)