C# 我应该如何阅读WriterLockslim和Dictionary<;MyKeyClass、MyValueClass>;?
所以问题是在访问字典时,什么时候应该使用EnterReadLock()和EnterWriteLock()C# 我应该如何阅读WriterLockslim和Dictionary<;MyKeyClass、MyValueClass>;?,c#,C#,所以问题是在访问字典时,什么时候应该使用EnterReadLock()和EnterWriteLock() TryGetValue。我认为读锁应该可以 使用索引器更新词典,例如_dic[existingKey]=NewValue。我认为读锁应该可以 使用索引器添加新项目,例如_dic[newKey]=NewValue。我想我需要一个书面记录 提前谢谢 安东已经提到,应该使用WriteLock的insers/updates/deletes和ReadLock的reads 但是你也可以考虑一个升级的锁。
提前谢谢 安东已经提到,应该使用WriteLock的insers/updates/deletes和ReadLock的reads 但是你也可以考虑一个升级的锁。比方说,您在字典中检查ContainsKey()或ContainsValue(),然后决定更新它。UpgradableReadLock允许您高效地升级到WriteLock,而无需释放ReadLock,然后
重新获取WriteLock 虽然这不能直接回答您的问题,但请注意,明智的做法是分析使用
ReaderWriterLockSlim
的解决方案是否比正常的lock
语句更快(当然,如果您还没有这样做的话)。新的ReaderWriterLockSlim
仍然有很多开销,在许多情况下(读多写少)仍然比简单的锁慢。除此之外,使用锁
的设计比使用ReaderWriterLockSlim
简单得多