为什么在System.ServiceModel程序集中出现SynchronizedCollection <T>?

问题描述

| 我想知道是否有人知道为什么在ServiceModel程序集中实现SynchronizedCollection 类。我看不到程序集名称与此(相对)通用类之间的任何连接。     

解决方法

        此类非常具体,其名称甚至可能会引起误解-除了在ѭ4nothing块中包装一些操作(
Insert
Add
Clear
IndexOf
等)外,它的内部实现几乎不执行任何操作,这实际上并未使其同步(请参阅本文中描述的问题-简而言之,像LINQ
FirstOrDefault
这样的复合操作在
SynchronizedCollection
上不是线程安全的,因为它们不获取锁。 它在
ServiceModel
汇编本身中被大量使用,并且可能被制成
public
只是因为某些
ServiceModel
类公开了这种类型的公共属性。 所以我的猜测是:它被放到
ServiceModel
汇编中,因为它实际上并不属于BCL,而仅仅是DRYish BCL名称空间扩展,用于内部
ServiceModel
需求。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...