Czy aplikacja C # śledzi, jak długo jest uruchomiona?


102

A jeśli tak, to czy istnieje łatwy sposób na uzyskanie całkowitego czasu od jego rozpoczęcia?


3
Twoja aplikacja czy inna aplikacja? Uważam, że WMI może śledzić coś takiego, ale jeśli jest to Twoja własna aplikacja, znacznie łatwiej jest po prostu uzyskać datę uruchomienia.
Ry-

Odpowiedzi:


165

System.Diagnostics.ProcessKlasa ma właściwość zawierającą czas rozpoczęcia za pomocą którego można obliczyć, jak długo to został uruchomiony:

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

6
Niesamowite! Muszę kochać .net
zepsuł się

1
Należy pamiętać, że current.StartTimejest to czas lokalny serwera, a nie UTC.
George

33

Użyj StopWatchklasy dla tej funkcji.

Nawet jeśli jest to dość przesada, zawsze będzie działać, nawet jeśli użytkownik zmieni zegar lub nawet jeśli podczas procesu nastąpi zmiana czasu letniego. - Julien Lebosquain (komentarz do mojej odpowiedzi.)


9
Nawet jeśli jest to dość przesada, to jedyna odpowiedź, która zawsze będzie działać, nawet jeśli użytkownik zmieni zegar, nawet jeśli wystąpią pewne zmiany czasu letniego podczas wykonywania procesu, więc +1.
Julien Lebosquain

1
@JulienLebosquain: Dzięki. Dodam ten punkt w mojej odpowiedzi wraz z należnymi kredytami.
Nikhil Agrawal

6

Możesz mieć Static DateTime Variabledla swojego projektu i przechowywać datę i godzinę w konstruktorze swojej klasy głównej. Odwołanie się do tej zmiennej statycznej i porównanie z bieżącym czasem pomaga osiągnąć wynik


4
;) tak, możesz też tylko odczytać czas z istniejącej zmiennej;)
TomTom
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.