我想知道是否有人知道为什么在ServiceModel程序集中实现了SynchronizedCollection <T>类.我看不到程序集名称和这个(相对)通用类之间的任何关联.
这个类非常具体,它的名称甚至可能会产生误导 - 它的内部实现除了将一些操作(Insert、Add、Clear等IndexOf)包装在lock (this.sync) {}块中之外几乎不执行任何操作,这并不能使其真正同步(请参阅本文中描述的问题)- 简而言之,像 LINQ 这样的复合操作FirstOrDefault在 上不是线程安全的SynchronizedCollection,因为它们不获取锁)。
它在ServiceModel程序集本身中大量使用,可能public只是因为某些ServiceModel类公开了这种类型的公共属性。
所以我的猜测是:它被放入ServiceModel汇编中是因为它并不真正属于 BCL,而只是满足内部ServiceModel需求的 DRYish BCL 命名空间扩展。
| 归档时间: |
|
| 查看次数: |
1394 次 |
| 最近记录: |