首页 > 解决方案 > Linq to Sql DataContext 线程安全

问题描述

代码:

using (var db = new TestDataContext(connectionString))
{
    var result = db.usp_Update_TestTable(id, state);
}

更新存储过程usp_Update_TestTable非常简单,它只是更新TestTable.

问题:

我想了解是否有多个线程正在运行,并且线程 A 开始更新表,同时线程 B 调用相同的方法。会发生什么。

  1. 线程 B 会等待线程 A 完成它的操作吗?
  2. 线程 B 将尝试更新并失败,因为线程 A 仍在执行其工作。因此超时?
  3. 线程B和线程A会死锁吗?

如果选项 3 是答案,有没有办法让这个操作线程安全?

谢谢。

标签: c#linq-to-sqlthread-safetydeadlock

解决方案


嗨,这里是链接https://dzone.com/articles/parallel-sql-c这里它解释了使用任务库通过并行编程实现线程安全,当然 async/waits 也适用于这种情况。


推荐阅读