Linq to Sql DataContext线程安全

时间:2018-08-08 05:26:11

标签: c# linq-to-sql thread-safety deadlock

代码:

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是答案,是否有任何方法可以使此操作线程安全?

谢谢。

1 个答案:

答案 0 :(得分:-1)

您好,这里是链接https://dzone.com/articles/parallel-sql-c,在这里它说明了如何使用任务库通过并行编程来实现线程安全,当然,异步/等待也适用于这种情况。