Une application C # suit-elle depuis combien de temps son exécution?

102

Et si c'est le cas, existe-t-il un moyen facile d'obtenir le temps total depuis le début?

cassé
la source
3
Votre application ou une autre application? Je pense que WMI peut suivre quelque chose comme ça, mais s'il s'agit de votre propre application, il est beaucoup plus simple d'obtenir la date au démarrage.
Ry-

Réponses:

165

La System.Diagnostics.Processclasse a une propriété contenant l'heure de début que vous pouvez utiliser pour calculer la durée de son exécution:

var current = System.Diagnostics.Process.GetCurrentProcess();
DateTime startedAt = current.StartTime
Lee
la source
6
Impressionnant! Gotta love .net
cassé le
1
Sachez qu'il current.StartTimes'agit de l'heure locale du serveur et non de l'heure UTC.
George
33

Utilisez la StopWatchclasse pour cette fonctionnalité.

Même si cela est assez excessif, cela fonctionnera toujours, même si l'utilisateur modifie l'horloge ou même s'il y a des changements d'heure d'été pendant le processus. - Julien Lebosquain (Commentez ma réponse.)

Nikhil Agrawal
la source
9
Même si c'est assez exagéré, c'est la seule réponse qui fonctionnera toujours, même si l'utilisateur change l'horloge, même s'il y a des changements d'heure d'été pendant le processus, donc +1.
Julien Lebosquain
1
@JulienLebosquain: Merci. J'ajouterai ce point dans ma réponse avec les crédits dus.
Nikhil Agrawal
6

Vous pouvez avoir un Static DateTime Variablepour votre projet et stocker le datetime dans le constructeur de votre classe principale. Le référencement de cette variable statique et la comparaison avec l'heure actuelle vous aident à atteindre votre résultat

Akhil
la source
4
;) ouais, vous pouvez aussi jsut lire l'heure de la variable existante;)
TomTom