Чи відстежує програма C #, скільки часу вона працює?


102

І якщо це так, чи є простий спосіб отримати загальний час від його початку?


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

Відповіді:


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
;) так, ви також можете jsut прочитати час з існуючої змінної;)
TomTom
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.