2012-07-03 39 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