C# 后台进程改变静态数据。

C# 后台进程改变静态数据。,c#,asp.net,C#,Asp.net,我在web应用程序中使用后台工作者,该应用程序可以为使用该应用程序的多个用户更改应用程序中的静态数据,但对于单个用户,它运行良好。 我会犯这样的错误 SqlConnection不支持并行事务 系统数据错误数据已被更改 清除静态数据集后,在位置0处没有行 请记住,不能跨多个线程共享非线程安全对象实例 如果您打开了一个SqlConnection,那么多个线程如何使用这个连接(例如,一个线程用于发送,而另一个线程希望同时接收),而不会造成麻烦和不可预测的行为? 您需要锁定资源对象或使用ThreadLo

我在web应用程序中使用后台工作者,该应用程序可以为使用该应用程序的多个用户更改应用程序中的静态数据,但对于单个用户,它运行良好。 我会犯这样的错误

  • SqlConnection不支持并行事务
  • 系统数据错误数据已被更改
  • 清除静态数据集后,在位置0处没有行

  • 请记住,不能跨多个线程共享非线程安全对象实例

    如果您打开了一个SqlConnection,那么多个线程如何使用这个连接(例如,一个线程用于发送,而另一个线程希望同时接收),而不会造成麻烦和不可预测的行为?
    您需要锁定资源对象或使用ThreadLocal或创建具有自己连接的每个线程,以获得线程安全。-注意竞争条件或死锁。因此,请小心使用“多线程”。

    请提供一些代码和更详细的说明,以便社区能够以某种方式帮助您:)您需要了解线程安全,也许可以使用线程本地存储来确保您的后台工作人员有自己的
    SqlConnection
    实例。也就是说,您不应该在不同的线程之间共享数据库连接。