Отслеживает ли приложение C #, как долго оно работает?


102

И если да, есть ли простой способ узнать общее время с момента запуска?


3
Ваше приложение или другое приложение? Я считаю, что WMI может отслеживать что-то подобное, но если это ваше собственное приложение, гораздо проще получить дату при запуске.
— Ry-

Ответы:


165

У System.Diagnostics.Processкласса есть свойство, содержащее время начала, которое вы можете использовать, чтобы вычислить, как долго он работает:

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

6
Потрясающие! Gotta love .net
— сломался

1
Имейте в виду, что current.StartTimeэто местное время сервера, а не UTC.
— Джордж

33

Используйте StopWatchкласс для этой функции.

Даже если это слишком много, он всегда будет работать, даже если пользователь изменит часы или даже если во время процесса есть некоторые изменения летнего времени. - Жюльен Лебоскен (Комментарий к моему ответу).


9
Даже если это слишком много, это единственный ответ, который всегда будет работать, даже если пользователь изменит часы, даже если есть некоторые изменения летнего времени во время выполнения процесса, поэтому +1.
— Жюльен Лебоскен,

1
@JulienLebosquain: Спасибо. Я добавлю этот пункт в свой ответ с должной благодарностью.
— Nikhil Agrawal

6

Вы можете иметь Static DateTime Variableдля своего проекта и хранить дату и время в конструкторе вашего основного класса. Ссылка на эту статическую переменную и сравнение с текущим временем поможет вам достичь результата.


4
;) да, вы также можете просто считать время из существующей переменной;)
— TomTom
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.