em7*_*m70 11 .net c# collections concurrency
我正在考虑在我正在编写的程序中使用ConcurrentBag,但是我似乎无法在TryTake上找到足够的文档.
我知道该方法可能会失败,但我无法找到可能发生此类失败的情况的解释,以及失败后收集将保留的状态.
如果它只是在另一个线程已经删除了该项目的情况下,那么我不在乎,但我无法承受的是我想要移除的项目仍然在通话后仍然在集合中.
这可能是这样吗?
根据文档,如果没有可用的物品(即袋子是空的),则返回 false。由于它是一个线程安全的集合,因此不应该存在“空”和多个线程的问题。
您必须考虑文档result T并return value考虑以下因素:
result T:当此方法返回时,结果包含从 ConcurrentBag 中删除的对象,如果包为空,则结果包含 T 的默认值。
返回:如果成功删除对象,则返回 true;否则为假。
http://msdn.microsoft.com/en-us/library/dd287255.aspx
| 归档时间: |
|
| 查看次数: |
2417 次 |
| 最近记录: |