2009-05-19 12 views

Antwort

8

Es ist nicht Thread-sicher, daher können Sie keine Verbindungsobjekte oder ähnliches über Threads hinweg teilen.

Die in der Readme-Datei erwähnten Thread-Bugfixes haben mit mehreren Threads zu tun, die mehrere Verbindungen (dh jeweils eine) zur selben Datei verwenden und welche Art von Problemen oder Wettlaufbedingungen sich ergeben können. Die Thread-Race-Bedingung, die für BEGIN und BEGIN IMMEDIATE erwähnt wurde, hatte zum Beispiel den unglücklichen Effekt, dass ein Thread, der einen BEGIN-Befehl absetzte, trotzdem die Datenbank vor dem ersten besitzen konnte. Diese Arten von Situationen wurden behoben.

Aber Datenbankverbindungen (Oracle, Sqlite, MS SQL-Server) in. NET sind nicht threadsicher, noch sind die umliegenden Objekte.

+3

Um eine kleine Menge zu den oben genannten hinzuzufügen - die ADO.NET-Spezifikation empfiehlt nicht oder erfordern sie threadsicher. Sie sollten eine Verbindung pro Thread verwenden - das ist das Design von ADO.NET. –

+0

Was ist mit Lesen? Ist es sicher, schreibgeschützte Verbindungen über Threads freizugeben? – axe