私は各ページが構築された時間を計算するためにANY Webページから呼び出される静的タイマークラスを持っています。静的メソッドはスレッドセーフですか
私の質問は静的クラスのスレッドセーフですか?私の例では、同時ユーザーは私の開始時間と停止時間に問題を引き起こしますか?例:私の開始値と終了値を上書きする異なるスレッド。
public static class Timer
{
private static DateTime _startTime;
private static DateTime _stopTime;
/// <summary>
/// Gets the amount of time taken in milliseconds
/// </summary>
/// <returns></returns>
public static decimal Duration()
{
TimeSpan duration = _stopTime - _startTime;
return duration.Milliseconds;
}
public static void Start()
{
_startTime = DateTime.Now;
}
public static void Stop()
{
_stopTime = DateTime.Now;
}
}
このクラスは非静的クラスであるべきですか?
(このクラスは、asp.netのマスターページから呼び出されます。)
MSDN: "クラスのインスタンスには、クラスのすべてのインスタンスフィールドの個別のコピーが含まれていますが、各静的フィールドのコピーは1つだけです。 – colithium