Я использую Static для хранения данных для кеширования. Это используется в службах окон.Обновление статических данных (кэширование) во время выполнения
Код моего кэширования ниже.
public class 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;
}
}
}
Мой вопрос: как обновить (перезагрузить) эти статические данные во время выполнения. Я не хочу использовать таймер, потому что кеш обновляется каждый раз, когда таймер истекает.
Я хочу, чтобы кеш обновлялся, когда это необходимо, так как он обновляется вручную без перезапуска службы окна.
Я думал об использовании концепции просмотра файлов, то есть отдельного потока, который следит за файлом, если обновленный кеш обновляется.
Верно ли это?
Какие триггеры существуют для обновления кеша? – yamen