ASP.NET MVC 4通读缓存

时间:2014-03-30 17:16:54

标签: asp.net-mvc-4 caching locking

我有一个系统,它位于Web服务器上,可以动态生成文件以响应HTTP请求。该系统使用asp.net mvc 4构建。所有代码都在控制器中。生成文件后,它们不会经常更改,因此我想实现缓存。我该如何实施以下内容? 用户1请求文档1 --- Web服务器处理正在进行...同时用户2请求文档1(相同文档)..我不想再次开始生成文档1.我希望此请求等到完成user1请求,以便可以从缓存提供用户2请求。这可能只是基本问题......我想在实现缓存之前理解解决方案。 请帮助一些样品..

1 个答案:

答案 0 :(得分:0)

一个相对简单的解决方案是缓存Lazy<MyType>实例,其中MyType是代表您的文档的类型。

对于您描述的方案,您应该使用Lazy<MyType>构建LazyThreadSafetyMode.ExecutionAndPublication实例。这将确保文档仅生成一次。