キャッシュとの相互作用を容易にするCacheHelperクラスがあります。staticintフィールドを使用してキャッシュタイムアウトを指定したいと思います。このフィールドは最初は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));
}
}
}