我想显示我的代码运行的机器的运行时间,我该怎么做?
答案 0 :(得分:10)
试试此链接。它使用 System.Environment.TickCount 属性
获取自系统启动以来经过的毫秒数。 - MSDN
http://msdn.microsoft.com/en-us/library/system.environment.tickcount(VS.80).aspx
注意:此方法将工作25天,因为TickCount是Int32。答案 1 :(得分:5)
using System.Management;
using System.Linq;
TimeSpan GetUptime()
{ var query = new SelectQuery("SELECT LastBootUpTime
FROM Win32_OperatingSystem
WHERE Primary='true'");
var mos = new ManagementObjectSearcher(query);
var str = mos.Get().First().Properties["LastBootUpTime"].Value.ToString();
return DateTime.Now - ManagementDateTimeConverter.ToDateTime(str);
}
答案 2 :(得分:2)
您也可以使用诊断
using System.Diagnostics;
..........
PerformanceCounter perfc = new PerformanceCounter("System","System Up Time");
perfc.NextValue();
TimeSpan t = TimeSpan.FromSeconds(perfc.NextValue());
..........
答案 3 :(得分:1)
最简单和正确的方法是
public static TimeSpan GetUptime()
{
ManagementObject mo = new ManagementObject(@"\\.\root\cimv2:Win32_OperatingSystem=@");
DateTime lastBootUp = ManagementDateTimeConverter.ToDateTime(mo["LastBootUpTime"].ToString());
return DateTime.Now.ToUniversalTime() - lastBootUp.ToUniversalTime();
}
答案 4 :(得分:1)
很奇怪他们还没有考虑过秒表吗?
精确且大于System.Environment.TickCount
,不涉及操作系统可怕的性能计数器,WMI或本机调用,并且非常简单:
var ticks = Stopwatch.GetTimestamp();
var uptime = ((double)ticks) / Stopwatch.Frequency;
var uptimeSpan = TimeSpan.FromSeconds(uptime);
答案 5 :(得分:0)
有很多可能意味着什么的定义。假设我们正在谈论一个应用程序,那么对一个简单服务的远程ping可能就足够了。 Keynote为网络提供企业级解决方案,必须有许多其他解决方案,我想象的很多免费。
更新:鉴于此标记为.net,我认为我们对应用程序的正常运行时间感兴趣。它是一个应用程序,您希望在其中显示机器的正常运行时间。
答案 6 :(得分:0)
供将来参考,在* nix上,使用正常运行时间(1)
答案 7 :(得分:0)
仅供参考;在Win32世界中,您可以使用:
答案 8 :(得分:-1)
我建议您使用命令行: net statistics workstation 并解析输出。机器运行的时间是在“Statistics since”之后。