複雑な数学的値を計算するアセンブリがあります。このアセンブリは、ASP.NET アプリケーションによって消費されます (ただし、への参照がないSystem.Web
ため、Web キャッシュなどにはアクセスできません)。
複雑な計算の結果を、Web アプリに送信されるすべてのリクエストに対してキャッシュする必要があります。
私の数学クラスの静的フィールドは 1 回につき 1 回初期化され、複数のリクエストに対応し、それぞれが静的フィールドから読み取られると考えるのは正しいAppDomain
ですAppDomain
か?
例えば:
public static class MyMath
{
private static ConcurrentDictionary<int, decimal> results = new ConcurrentDictionary<int, decimal>();
public static decimal ComputeValue(int input)
{
decimal result;
if (!results.TryGetValue(int, out result))
{
result = ComputeComplicatedValue(int);
results.TryAdd(input, result);
}
return result;
}
}
その例では、関連のない複数のリクエストに対してスレッドセーフにキャッシュされた結果が得られますか?
ありがとう