Ho una classe di timer statico che verrà chiamata da QUALSIASI pagina Web per calcolare per quanto tempo ciascuna pagina è stata presa per essere costruita.I metodi statici sono thread-safe
La mia domanda è sono le classi Static thread thread safe? Nel mio esempio utenti concorrenti causano un problema con i miei orari di inizio e fine? Ad esempio, un thread diverso sovrascrive i miei valori di avvio e arresto.
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;
}
}
Questa classe dovrebbe essere una classe non statica?
(Questa classe sarà chiamato dal masterpage asp.net.)
MSDN: "Mentre un'istanza di una classe contiene una copia separata di tutti i campi di istanza della classe, c'è solo una copia di ciascun campo statico." – colithium