2009-05-19 12 views

risposta

8

Non è thread-safe, quindi non è possibile condividere oggetti di connessione o simili su thread.

I bugfix dei thread menzionati nel file readme hanno a che fare con più thread che utilizzano più connessioni (ad esempio uno ciascuno) allo stesso file e che tipo di problemi o condizioni di gara possono produrre.

Ad esempio, la condizione di thread thread menzionata per BEGIN e BEGIN IMMEDIATE ha avuto lo sfortunato effetto che anche se un thread ha generato un BEGIN, un altro thread che ha generato un BEGIN in seguito potrebbe ancora finire per possedere il database prima del primo. Questi tipi di situazioni sono stati risolti.

Ma le connessioni di database (oracle, sqlite, ms sql server) in .NET non sono thread-safe, né gli oggetti circostanti.

+3

Per aggiungere una piccola quantità a quanto sopra, la specifica ADO.NET NON consiglia o richiede che siano thread-safe. Si suppone che si utilizzi una connessione per thread, ovvero la progettazione di ADO.NET. –

+0

Che ne dici di leggere? È sicuro condividere la connessione di sola lettura tra thread? – axe

Problemi correlati