c#对一个类的2个字段进行线程锁定

时间:2010-12-10 00:16:11

标签: c# multithreading locking

问题很简单,假设我有:

class MyClass
{
    object myObj1
    object myObj2
}

Thread1(MyClass c)
{
    DoALotOnMyObj1(c.myObj1);
}

Thread2(MyClass c)
{
    DoALotOnMyObj2(c.myObj2);
}

在这种情况下我是否必须使用锁,即使我完全确定两个线程只使用myObj1(或2取决于线程)而不是其他字段?

2 个答案:

答案 0 :(得分:3)

不,你不会。

答案 1 :(得分:1)

拥有锁的概念是确保在一个线程中更改资源时,其他线程在锁被释放之前不会访问它。

在您的情况下,您不会在两个线程之间共享任何资源,因此您不需要锁定。