C#应用程序是否跟踪其运行了多长时间?


102

如果可以的话,是否有一种简单的方法来获取自启动以来的总时间?


3
您的应用还是其他应用?我相信WMI可能会跟踪类似的内容,但是如果它是您自己的应用程序,则仅在启动时获得日期就容易得多。
Ry-

Answers:


165

System.Diagnostics.Process类具有包含起始时间,你可以用它来计算它已经运行了多长时间的属性:

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

6
太棒了!爱.net
打破了

1
请注意,这current.StartTime是服务器的本地时间,而不是UTC。
乔治

33

StopWatch类用于此功能。

即使过大,它也将始终有效,即使用户更改时钟或在此过程中进行了某些夏令时更改也是如此。- 朱利安Lebosquain(评论我的答案。)


9
即使过于夸张,即使用户更改了时钟,即使在运行过程中进行了一些夏令时更改,这也是唯一有效的答案,因此+1。
Julien Lebosquain'7

1
@JulienLebosquain:谢谢。我会在我的回答中加上适当的学分来说明这一点。
Nikhil Agrawal

6

您可以Static DateTime Variable为您的项目准备一个,并将日期时间存储在您的主类的构造函数中。引用此静态变量并将其与当前时间进行比较有助于您实现结果


4
;)是的,您还可以从现有的变量中读取时间;)
TomTom 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.