Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 防止缓存中的多次读取_C#_Caching - Fatal编程技术网

C# 防止缓存中的多次读取

C# 防止缓存中的多次读取,c#,caching,C#,Caching,我们有一个缓存类,它允许读取下面的伪代码 GetItemFromCache() if (GetItemFromCache != true) { ReadThrough(); } 如果多个调用同时使用同一个键命中缓存,我可以进行多次读通,这可能会带来潜在的成本(通过网络访问服务)。我希望能够阻止读通过,只允许一个单一的读通过 我认为,只要锁对缓存密钥是唯一的,在读通周围添加一个锁就可以工作。我可以通过一本包含字典的字典来处理这个问题。我不是百分之百相信这是解决问题的最好办法,或者如果有

我们有一个缓存类,它允许读取下面的伪代码

GetItemFromCache()

if (GetItemFromCache != true)
{
    ReadThrough();
}
如果多个调用同时使用同一个键命中缓存,我可以进行多次读通,这可能会带来潜在的成本(通过网络访问服务)。我希望能够阻止读通过,只允许一个单一的读通过


我认为,只要锁对缓存密钥是唯一的,在读通周围添加一个锁就可以工作。我可以通过一本包含字典的字典来处理这个问题。我不是百分之百相信这是解决问题的最好办法,或者如果有其他更好的方法。

您列出了3个可能的性能维度:1)优化缓存服务的吞吐量2)优化每个线程的执行时间3)优化所有线程的净吞吐量清楚地确定您的目标有助于缩小最佳解决方案的范围。您列出了3种可能的性能维度:1)优化缓存服务的吞吐量2)优化每个线程的执行时间3)优化所有线程的净吞吐量明确确定目标有助于缩小最佳解决方案的范围。