为什么不建议使用MethodImplOptions.Synchronized导致锁定?

时间:2011-04-27 09:07:22

标签: c# .net

当我注意到以下情况时,我正在查看MethodImplOptions枚举的可用值:

  

不建议对公共类型锁定实例或类型(与Synchronized标志一样),因为除了您自己的代码之外的代码可以锁定公共类型和实例。这可能会导致死锁或其他同步问题。

所以我想知道为什么编译器(或者由.Net运行时完成?)这样做而不是创建私有字段并锁定它?

这听起来像是一个简单的修复,但我认为它不是......

1 个答案:

答案 0 :(得分:2)

由CLR完成 - 如果由编译器完成,则不需要属性。

有可能让它更容易运行Java代码......或者只是从Java思维模式传播的错误:(

(事实上每个对象都有一个与之关联的监视器是错误的开始,IMO ......再次,基本上从Java复制。)