6
我在問.Net實現 - System.Data.SQLite。 是否有指導方針以線程安全的方式使用它?SQLite.Net線程安全嗎?
我知道SQLite本身可以編譯with or without thread safety - 但System.Data.SQLite是如何編譯的?
我在問.Net實現 - System.Data.SQLite。 是否有指導方針以線程安全的方式使用它?SQLite.Net線程安全嗎?
我知道SQLite本身可以編譯with or without thread safety - 但System.Data.SQLite是如何編譯的?
它不是線程安全的,所以你不能在線程間共享連接對象或類似對象。
自述文件中提到的線程錯誤修復與多個線程使用多個連接(即每個連接到同一個文件)以及可能產生的問題或競爭條件有關。
例如,BEGIN和BEGIN IMMEDIATE中提到的線程競爭條件具有不幸的效果,即使一個線程發佈BEGIN,之後發佈BEGIN的另一個線程仍可能最終在第一個線程之前擁有數據庫。這些類型的情況已經修復。
但.NET中的數據庫連接(oracle,sqlite,ms sql server)不是線程安全的,也不是周邊的對象。
向上面添加一小部分 - ADO.NET規範不建議或要求它們是線程安全的。你應該使用每個線程一個連接 - 這是ADO.NET的設計。 – 2009-05-24 17:02:16