キャッシング用のデータを保持するために Static を使用しています。これは、ウィンドウ サービスで使用されます。
私のキャッシングコードは以下です。
パブリック クラス 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;
}
}
}
私の質問は、実行時にこの静的データを更新 (リロード) するにはどうすればよいかということです。タイマーが切れるたびにキャッシュが更新されるため、タイマーを使用したくありません。
ウィンドウサービスを再起動せずにキャッシュを手動で更新するなど、必要なときにキャッシュを更新したい。
ファイル監視の概念、つまり、変更されたキャッシュが更新された場合にファイルを監視する別のスレッドを使用することを考えました。
あれは正しいですか?