使用Enterprise Library的数据访问时如何确保线程安全

时间:2016-10-18 22:18:25

标签: multithreading thread-safety enterprise-library data-access-app-block

我有一个运行多个并发后台进程的应用程序,使用企业库的数据访问应用程序块将数据插入数据库。 每个后台线程使用DatabaseFactory.CreateDatabase传入相同的数据库实例名称。以下是检索数据库和命令对象的代码片段:

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

我发现这不是线程安全的,并且由于值在各个线程中混淆而导致错误。我该如何处理它以确保它是线程安全的?

提前感谢!

1 个答案:

答案 0 :(得分:1)

我发现了我的问题。跨线程混合的值不是由于Enterprise Library Data Access对象,而是我用来存储参数的另一个对象。我不小心把它变成了全局而不是每个线程中的本地资源。