Sam*_*lly 3 c# asp.net asp.net-mvc concurrentdictionary asp.net-mvc-5
我在 Azure 应用服务上使用 MVC 5、ASP.NET 4.7
我使用 ConcurrentDictionary 对象来保存数据以保存对数据源的多次调用。
关于其行为的几个问题:
1) 一旦填充,它将持续供同一 Web 应用程序的多个用户访问。我对么?因此,只有网站重新启动后的第一个用户才会受到性能影响。
2) 持续多久?是直到另一次池刷新或站点重新启动,还是存在某种形式的非活动超时?
提前致谢。
编辑:
public class myCache
{
private static readonly ConcurrentDictionary<int, string> myCacheDictionary = new ConcurrentDictionary<int, string>();
public static async Task populateCache()
Run Code Online (Sandbox Code Playgroud)
1) 一旦填充,它将持续供同一 Web 应用程序的多个用户访问。我对么?因此,只有网站重新启动后的第一个用户才会受到性能影响。
是的,static关键字意味着只要应用程序在内存中,它就会一直保留,除非您以编程方式将其清除。无论用户、线程、同步上下文等如何,每个请求都将使用相同的实例。
2) 持续多久?是直到另一次池刷新或站点重新启动,还是存在某种形式的非活动超时?
它会一直存在,直到应用程序池刷新或站点重新启动,除非您以其他方式对其进行编程。
MemoryCache如果您将其用于缓存目的,您可能会对该类感兴趣。它将允许您设置策略,以便在特定时间后或检测到内存开始不足时清除其数据。
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |