为了账号安全,请及时绑定邮箱和手机立即绑定

将字典重构为 ConcurrentDictionary

将字典重构为 ConcurrentDictionary

C#
动漫人物 2022-06-19 16:31:25
目前我有一些异步方法都试图从字典中更新和读取附带问题:异步函数会导致 KeyNotFoundException 和 NullReferenceException 吗?我只是在做 _dictonary[myString] = myObject无论如何。我想Dictionary<string,object>用ConcurrentDictionary<string, object> 替换所有内容。我根本不在乎某个线程是否在另一个线程写入数据之前/之后获取数据。Dictionary如果我只是将文本全部替换为ConcurrentDictionary并成功编译,我会遇到什么麻烦吗?
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

InternallyConcurrentDictionary的索引器方法使用TryGetValue和相同。TryAddInternalTryAdd

除非您的键为空,否则设置值不应引发异常。它应该像您期望的那样工作(尽管在您再次阅读之前可能会出现另一个线程并对其进行更改)。

KeyNotFoundException如果在字典中找不到密钥,您仍然会得到一个。如果您希望一个线程插入一个值,然后您尝试使用concurrentDictionary[key]TryGetValue如果您在这方面想要安全,我建议您使用。


查看完整回答
反对 回复 2022-06-19
  • 1 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信