0

J'ai une application qui exécute plusieurs processus d'arrière-plan simultanés pour insérer des données dans la base de données à l'aide du bloc d'application Accès aux données de la bibliothèque d'entreprise. Chaque thread d'arrière-plan utilise DatabaseFactory.CreateDatabase en transmettant le même nom d'instance de base de données. Voici l'extrait de code qui récupère la base de données et de l'objet commande:Comment assurer la sécurité des threads lors de l'utilisation des données de la bibliothèque d'entreprise

Microsoft.Practices.EnterpriseLibrary.Data.Database database = DatabaseFactory.CreateDatabase(this.DatabaseInstanceName); 
DbCommand commandObj = database.GetSqlStringCommand(statement); 

Je trouve que c'est pas sûre et je reçois des erreurs en raison des valeurs traînes dans les filets. Comment dois-je gérer cela pour s'assurer qu'il est thread safe?

merci d'avance!

Répondre

1

J'ai trouvé mon problème. Les valeurs mélangées entre les threads n'étaient pas dues aux objets Enterprise Library Data Access mais à un autre objet que j'avais utilisé pour stocker les paramètres. Je l'avais accidentellement rendu global au lieu d'une ressource locale dans chaque thread.