【发布时间】:2012-05-12 16:40:45
【问题描述】:
.NET ConcurrentDictionary 容易受到可能导致意外数据的竞争条件的影响,正如 at the bottom of this MSDN article. 所解释的那样,我假设有几个因素需要考虑。
问:我应该如何编写不易受到可能导致数据丢失的竞争条件的代码?
在我的场景中,我有一个输入流,其索引始终在增加 (n++)。我的想法是,如果出现竞争情况,我可以detect missing data 并重新发送它。另一方面,我不知道可能有更好的方法来做到这一点。
【问题讨论】:
-
避免 GetOrAdd() 和 AddOrUpdate() ?
-
答案取决于你要做什么。你有什么类型的任务?
-
@gabba - 我的任务是从各种来源读取安全日志数据。每个日志条目都有一个不断增加的索引。有关更多信息,请参阅更新的问题/链接
标签: c# multithreading .net-4.0 race-condition concurrentdictionary