2012-07-03 13 views
102

E se lo fa, c'è un modo semplice per ottenere il tempo totale da quando è iniziato?Un'app C# tiene traccia di quanto è in esecuzione?

+3

La vostra applicazione o un'altra applicazione? Credo che WMI possa tracciare qualcosa del genere, ma se è la tua app, è molto più semplice ottenere la data all'avvio. – Ryan

risposta

164

La classe System.Diagnostics.Process ha una proprietà che contiene l'ora di inizio, che è possibile utilizzare per calcolare quanto tempo è stato in esecuzione:

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

+1 - Bello. Non l'ho mai notato. – Oded

+6

Fantastico! Devi amare .net – broke

+1

Tieni presente che 'current.StartTime' è l'ora locale del server, non l'ora UTC. – George

7

È possibile avere un Static DateTime Variable per il progetto e archiviare il datetime nel Costruttore della classe principale. Fare riferimento a questa variabile statica e confrontarla con il tempo corrente consente di ottenere i risultati

+4

;) Sì, è anche possibile leggere l'ora dalla variabile esistente;) – TomTom

34

Utilizzare questa classe per la funzione StopWatch.

Anche se abbastanza eccessivo, funzionerà sempre, anche se l'utente cambia l'orologio o anche se ci sono alcune modifiche all'ora legale durante il processo. - Julien Lebosquain (Commento alla mia risposta.)

+9

Anche se piuttosto eccessivo, questa è l'unica risposta che funzionerà sempre, anche se l'utente cambia l'orologio, anche se ci sono alcune modifiche all'ora legale durante il processo esegui così +1. –

+1

@JulienLebosquain: grazie. Aggiungerò questo punto nella mia risposta con crediti dovuti. –

+3

+1 per contrastare i downgotes senza senso – nawfal

Problemi correlati