【发布时间】:2015-01-18 15:56:35
【问题描述】:
我有一个以速度为主要关注点的 Web 项目 (Web API)。 每个请求都会从内存中的字典中获得响应(根据某个键)。
在其他一些事件中 - 需要使用新值更新此字典。 整个更新过程大约需要 20 秒,此时我不介意根据更改前的字典值获取响应。
我想在每毫秒都很重要的情况下尽快实现字典更改。
我想避免任何锁/互斥锁实现,因为检查它们的值也会很耗时。
这里是否有最佳实践?我不介意“浪费”一些具有旧价值的电话。主要关注的是整体通话速度。
如果出现以下情况会发生什么:
_myDictionary = new Dictionary<>({some dict values});
有一个从 _myDictionary 获取值的调用。 ?
_myDictionary.TryGetValue("some key");
【问题讨论】:
标签: c# multithreading dictionary asp.net-web-api thread-safety