2012-07-03 38 views
102

如果是這樣,是否有一種簡單的方法可以獲得自啓動以來的總時間?C#應用程序是否跟蹤其運行的時間?

+3

您的應用程序或其他應用程序?我相信WMI可能會跟蹤這樣的事情,但如果它是您自己的應用程序,那麼只需在啓動時獲取日期就簡單多了。 – Ryan

回答

164

System.Diagnostics.Process類多久它已經運行包含的開始時間,你可以用它來計算屬性:

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

+1 - 不錯的一個。從來沒有注意到那個。 – Oded

+6

太棒了!得到愛.net – broke

+1

請注意'current.StartTime'是服務器的本地時間,而不是UTC。 – George

7

您可以爲您的項目設置Static DateTime Variable,並將日期時間存儲在主類的構造函數中。引用此靜態變量並與當前時間進行比較可幫助您實現結果

+4

;)是的,你也可以從現有的變量中讀出時間;) – TomTom

34

使用StopWatch類可以實現此功能。

即使相當矯枉過正,即使用戶更改了時鐘,或者即使在此過程中存在夏令時更改,它也將始終有效。 - Julien Lebosquain(評論我的答案。)

+9

即使相當矯枉過正,即使用戶改變時鐘,即使存在一些夏時制變化在運行過程中如此+1。 –

+1

@JulienLebosquain:謝謝。我將在我的答案中加上這一點,並附上適當的信用。 –

+3

+1來抵消無意義的downvotes – nawfal