2009-05-19 6 views

Répondre

8

Il est thread-safe, donc vous ne pouvez pas partager des objets de connexion ou similaires dans les discussions. Les correctifs de threads mentionnés dans le fichier Lisezmoi concernent plusieurs threads utilisant plusieurs connexions (c.-à-d. Chacune) au même fichier, et le type de problèmes ou de conditions de concurrence pouvant survenir. Par exemple, la condition de race de thread mentionnée pour BEGIN et BEGIN IMMEDIATE a eu l'effet malheureux que, même si un thread a émis un BEGIN, un autre thread qui a émis un BEGIN par la suite pourrait toujours posséder la base de données avant le premier. Ces types de situations ont été corrigés.

Mais les connexions de base de données (Oracle, SQLite, MS SQL Server) dans .NET ne sont pas thread-safe, ni les objets environnants.

+3

Pour ajouter une petite quantité au-dessus - la spécification ADO.NET ne recommande pas ou ils nécessitent être thread-safe. Vous êtes censé utiliser une connexion par thread - c'est la conception de ADO.NET. –

+0

Qu'en est-il de la lecture? Est-il sûr de partager la connexion en lecture seule à travers les threads? – axe