Verfolgt eine C # -App, wie lange sie ausgeführt wird?

102

Und wenn ja, gibt es eine einfache Möglichkeit, die Gesamtzeit seit dem Start zu ermitteln?

Pleite
quelle
3
Deine App oder eine andere App? Ich glaube, WMI kann so etwas verfolgen, aber wenn es Ihre eigene App ist, ist es viel einfacher, nur das Datum beim Start zu ermitteln.
Ry-

Antworten:

165

Die System.Diagnostics.ProcessKlasse verfügt über eine Eigenschaft, die die Startzeit enthält, mit der Sie berechnen können, wie lange sie ausgeführt wurde:

var current = System.Diagnostics.Process.GetCurrentProcess();
DateTime startedAt = current.StartTime
Lee
quelle
6
Genial! Muss ich lieben .net
brach
1
Beachten Sie, dass dies current.StartTimedie Ortszeit des Servers ist, nicht UTC.
George
33

Verwenden Sie die StopWatchKlasse für diese Funktion.

Selbst wenn es ziemlich übertrieben ist, funktioniert es immer, selbst wenn der Benutzer die Uhr ändert oder wenn sich während des Vorgangs einige Änderungen an der Sommerzeit ergeben. - Julien Lebosquain (Kommentar zu meiner Antwort.)

Nikhil Agrawal
quelle
9
Selbst wenn es ziemlich übertrieben ist, ist dies die einzige Antwort, die immer funktioniert, selbst wenn der Benutzer die Uhr ändert, selbst wenn sich während des Prozesses einige Änderungen an der Sommerzeit ergeben, also +1.
Julien Lebosquain
1
@ JulienLebosquain: Danke. Ich werde diesen Punkt in meiner Antwort mit den entsprechenden Credits hinzufügen.
Nikhil Agrawal
6

Sie können eine Static DateTime Variablefür Ihr Projekt haben und die Datums- und Uhrzeitangabe im Konstruktor Ihrer Hauptklasse speichern. Durch Referenzieren dieser statischen Variablen und Vergleichen mit der aktuellen Zeit können Sie Ihr Ergebnis erzielen

Akhil
quelle
4
;) Ja, Sie können auch die Zeit aus der vorhandenen Variablen auslesen;)
TomTom