Risposte:
La System.Diagnostics.Processclasse ha una proprietà contenente l'ora di inizio che puoi usare per calcolare da quanto tempo è stata eseguita:
var current = System.Diagnostics.Process.GetCurrentProcess();
DateTime startedAt = current.StartTime
current.StartTimeè l'ora locale del server, non UTC.
Usa la StopWatchclasse per questa funzione.
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.)
Puoi avere un Static DateTime Variableper il tuo progetto e memorizzare il datetime nel Costruttore della tua classe principale. Fare riferimento a questa variabile statica e confrontare con l'ora corrente aiuta a ottenere il risultato