Tengo una clase de temporizador estático que CUALQUIER página web llamará para calcular cuánto tiempo ha tardado en construirse cada página.Son métodos estáticos de seguridad de subprocesos
Mi pregunta es ¿Las clases de Static son seguras? En mi ejemplo, ¿los usuarios simultáneos causarán un problema con mis horas de inicio y finalización? por ejemplo, hilos diferentes que sobrescriben mis valores de inicio y detención.
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;
}
}
¿Debería esta clase ser una clase no estática?
(Esta clase llamada desde el masterpage asp.net.)
MSDN: "Mientras que una instancia de una clase contiene una copia separada de todos los campos de instancia de la clase, solo hay una copia de cada campo estático." – colithium