1

我在 FCL 中发现了 Stack 类的一个奇怪实现。正如我所看到的,Stack 类提供了 SyncRoot 属性,旨在允许外部用户阻止整个集合并以线程安全的方式使用它。但是与 SyncRoot 一起,我发现了一个私有字段 _version 在修改操作(Push、Pop、Clear)时由 Stack 类递增。StackEnumerator 类使用此字段来检查在循环通过集合时是否有任何更改。但真是一个惊喜!Everywhere Stack 类通过一元运算符 ++ 递增版本,而不使用 Interlock 类。所以我不明白版本字段的意图是什么?

4

0 回答 0