我有一个 CacheHelper 类来促进与缓存的交互。我想使用静态 int 字段来指定我的缓存超时。该字段最初设置为 const 默认值,但我想为应用程序提供一种更改默认超时值的方法。
修改静态值类型时需要加锁吗?设置器中的锁是否必要?您还可以在这里看到其他问题吗?抱歉,在多线程方面我仍然很愚蠢。
谢谢。
public static class CacheHelper
{
private static object _SyncRoot;
private static int _TimeoutInMinutes = CacheDefaults.TimeoutInMinutes;
public static int TimeoutInMinutes
{
get
{
return _TimeoutInMinutes;
}
set
{
lock (_SyncRoot)
{
if (_TimeoutInMinutes != value)
{
_TimeoutInMinutes = value;
}
}
}
}
public static void Insert(string key, Object data)
{
if (HttpContext.Current != null && data != null)
{
HttpContext.Current.Cache.Insert(key, data, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(CacheHelper.TimeoutInMinutes));
}
}
}