Read only access only for sqlite3 from multiple threads
The SQLite library has many internal data structures that get changed even for a read-only database file (caches, compiled statements, result sets, etc.), so you must never access a single-threaded connection from multiple threads.
ADO.NET does not make any thread safety guarantees, so neither does System.Data.SQLite.