我正在使用静态来保存数据以进行缓存。这用于窗口服务。
我的缓存代码如下。
公共类 CacheLoader
{
private static Dictionary<string, string> _cache;
private static Boolean _loaded = false;
private static object _lockObject = new object();
private ILoader _loader;
public CacheLoader(ILoader loaderObj)
{
_loader = loaderObj;
}
public Dictionary<string, string> Load()
{
lock (_lockObject)
{
if (!_loaded)
{
_cache = _loader.Load();
_loaded = true;
}
}
return _cache;
}
public static void Clear()
{
lock (_lockObject)
{
_cache = null;
_loaded = false;
}
}
}
我的问题是,如何在运行时刷新(重新加载)这些静态数据。我不想使用计时器,因为每次计时器到期时都会刷新缓存。
我希望在需要时刷新缓存,例如手动刷新而不重新启动窗口服务。
我想到了使用文件监视概念,即,如果刷新更改的缓存,则监视文件的单独线程。
那是对的吗?