Soh*_*amC 0 c# collections concurrency thread-safety
我有一个如下集合?
public ICollection<MyClass> Property { get; private set; }
...
Property = new List<MyClass>();
Run Code Online (Sandbox Code Playgroud)
我希望在从DB中获取每个项目后添加MyClass项目.现在,每个数据库提取都在单独的后台线程中处理,并且它们同时运行.因此,DB调用的每个返回值都将面临.现在这可能会导致竞争条件,因为可能会在一个瞬间多次调用.PropertyMyClassProperty.Add()Property.Add()
所以我的问题是,List<>.Add()或者在ICollection<>.Add()内部执行的任何其他类处理任何竞争条件,还是需要明确处理?如果是这样呢?
ICollection没有任何内部; 这是一个界面.实现可能是也可能不是线程安全的,但接口不保证任何东西.
这可能有助于查看:
http://msdn.microsoft.com/en-us/library/dd997305%28v=vs.110%29.aspx
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |