在这个PostSharp Multithreading示例中,它在清单6中说明:
任何修改对象的方法都应该用。注释 [WriteLock]自定义属性。读取多个字段的方法 该对象也应该使用[ReadLock]自定义进行注释 属性。 (同步方法或属性getter是没用的 执行单个读访问,因为操作始终是 是一致的。)
同步方法或属性获取器执行单个读取访问是否无用是什么意思?这只适用于简单的原语,如string,int,float等,还是适用于结构?或者这是一个误导性的陈述?
答案 0 :(得分:1)
很可能它谈到“对指针大小对象的操作是原子的” - 所以如果你单独读取引用或相应地调整大小struct
,你就可以保证在没有锁的情况下具有一致的值。
一致意味着你不能从旧的属性值获得半指针,而从属性的新值获得一半。请注意,它并不意味着最新值 - 如果您需要最新值,您仍需要某种同步。