¿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ó?

rompió
fuente
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
Sotavento
fuente
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).

Nikhil Agrawal
fuente
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

Akhil
fuente
4
;) sí, también puede leer la hora de la variable existente;)
TomTom