猿问

将字典重构为 ConcurrentDictionary

目前我有一些异步方法都试图从字典中更新和读取

附带问题:异步函数会导致 KeyNotFoundException 和 NullReferenceException 吗?我只是在做 _dictonary[myString] = myObject

无论如何。我想Dictionary<string,object>ConcurrentDictionary<string, object> 替换所有内容。我根本不在乎某个线程是否在另一个线程写入数据之前/之后获取数据。

Dictionary如果我只是将文本全部替换为ConcurrentDictionary并成功编译,我会遇到什么麻烦吗?


动漫人物
浏览 169回答 1
1回答

鸿蒙传说

InternallyConcurrentDictionary的索引器方法使用TryGetValue和相同。TryAddInternalTryAdd除非您的键为空,否则设置值不应引发异常。它应该像您期望的那样工作(尽管在您再次阅读之前可能会出现另一个线程并对其进行更改)。KeyNotFoundException如果在字典中找不到密钥,您仍然会得到一个。如果您希望一个线程插入一个值,然后您尝试使用concurrentDictionary[key].&nbsp;TryGetValue如果您在这方面想要安全,我建议您使用。
随时随地看视频慕课网APP
我要回答