각 웹 페이지가 생성되는 데 걸리는 시간을 계산하기 위해 모든 웹 페이지에서 호출되는 정적 타이머 클래스가 있습니다.정적 메서드는 스레드로부터 안전합니까?
제 질문은 정적 클래스 스레드가 안전합니까? 필자의 예에서 동시 사용자는 시작 및 중지 시간에 문제가 발생합니까? 예 : 내 시작 값과 끝 값을 덮어 쓰는 다른 스레드.
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의 masterpage에서 호출됩니다.)
MSDN : "클래스의 인스턴스에는 클래스의 모든 인스턴스 필드가 별도로 포함되어 있지만 각 정적 필드에는 하나의 복사본 만 있습니다." – colithium