为什么锁对象必须是只读的?

27 浏览
0 Comments

为什么锁对象必须是只读的?

在实现锁时,我过去习惯在我的类中创建一个私有对象:

如果我希望确保它在创建我的类的线程中被锁定:

private object Locker = new object();

如果我希望确保它在应用程序中的所有线程中被锁定:

private static object Locker = new object();

但在这里:

为什么锁对象必须是静态的?

以及在一些其他问题中,每个人都说对象必须是readonly。我甚至在MSDN或JavaDoc中都没有找到原因。

由于我经常使用这种构造方式,有人能解释一下为什么我应该使用readonly吗?

谢谢!

0