2012-03-28 14 views
6

Estoy usando SQLite de system.data.sqlite.org¿Una SQLiteConnection por hilo?

Necesitamos acceder a la base de datos desde varios hilos (por varias razones). He leído mucho sobre las capacidades seguras de subprocesos de sqlite (el modo de acceso sincronizado predeterminado está bien para mí).

Me pregunto si es posible simplemente abrir una conexión por hilo. Es algo como esto posible? Realmente no me importan las condiciones de carrera (solicite algo que aún no se haya insertado). Solo me interesa el hecho de que es posible acceder a los datos usando un objeto SQLiteConnection por hilo.

Respuesta

3

Sí. De hecho, es la manera correcta, ya que SQLite no es seguro para subprocesos (de manera predeterminada. Puede hacer que la compilación sea segura para los subprocesos con alguna opción). Y sólo para asegurarse de que funciona: SQLite se está utilizando en algunos sitios web pequeños, por lo que es multihilo allí :)

Aquí más información: http://www.sqlite.org/faq.html#q6

4

Dado que utilice una conexión separada por hilo que debe estar bien.

De docs

Nota esa instancia SQLiteConnection no se garantiza que sea el hilo seguro. Debe evitar el uso del mismo SQLiteConnection en varios subprocesos al mismo tiempo. Se recomienda abrir una nueva conexión por hilo y cerrarla cuando el trabajo esté terminado.

Cuestiones relacionadas