我想问一下下面的代码是否是线程安全的: 考虑 Save1 和 Save2 将同时执行。 datacontext的线程安全有没有问题?
public class Test1()
{
private void Save1()
{
using(TestLinqToSQL obj = new TestLinqToSQL())
{
obj.SaveRecord(new Client (){Id = 1, Name = "John Doe");
}
}
private void Save2()
{
using(TestLinqToSQL obj = new TestLinqToSQL())
{
obj.SaveRecord(new Client (){Id = 2, Name = "Mike Tyson");
}
}
}
public class TestLinqToSQL : IDisposable
{
public void SaveRecord(Client newClient)
{
using(ClientDatacontext cont = new ClientDatacontext())
{
cont.InsertRecord(newClient);
}
}
}
提前致谢
最佳答案
在这种情况下,不,这不是问题,因为每个线程都会获得一个单独的 DataContext 实例,因为每个方法都会导致创建一个新的实例。如果 DataContext 在线程之间共享,您将遇到问题,因为实例方法不是线程安全的 see MSDN
关于c# - LINQ To SQL 线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13037470/