¿Una aplicación C # realiza un seguimiento de cuánto tiempo ha estado ejecutándose?


102

Y si es así, ¿hay alguna manera fácil de obtener el tiempo total desde que comenzó?


3
¿Tu aplicación u otra aplicación? Creo que WMI puede rastrear algo como esto, pero si es su propia aplicación, es mucho más simple obtener la fecha de inicio.
Ry-

Respuestas:


165

La System.Diagnostics.Processclase tiene una propiedad que contiene la hora de inicio que puede usar para calcular cuánto tiempo ha estado funcionando:

var current = System.Diagnostics.Process.GetCurrentProcess();
DateTime startedAt = current.StartTime

6
¡Increíble! Gotta love .net
rompió el

1
Tenga en cuenta que current.StartTimees la hora local del servidor, no UTC.
George

33

Utilice la StopWatchclase para esta función.

Incluso si es bastante excesivo, siempre funcionará, incluso si el usuario cambia el reloj o incluso si hay algunos cambios de horario de verano durante el proceso. - Julien Lebosquain (Comente mi respuesta).


9
Incluso si es bastante exagerado, esa es la única respuesta que siempre funcionará, incluso si el usuario cambia el reloj, incluso si hay algunos cambios de horario de verano durante el proceso de ejecución, así que +1.
Julien Lebosquain

1
@JulienLebosquain: Gracias. Agregaré ese punto en mi respuesta con los debidos créditos.
Nikhil Agrawal

6

Puede tener un Static DateTime Variablepara su proyecto y almacenar la fecha y hora en el constructor de su clase principal. Hacer referencia a esta variable estática y compararla con la hora actual lo ayuda a lograr su resultado


4
;) sí, también puede leer la hora de la variable existente;)
TomTom
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.