我必须使用某种技术获得System Up时间。 StackOverflow中有人建议我使用性能计数器来获取TimeSpan中的系统运行时间。
try
{
var uptime = new PerformanceCounter("System", "System Up Time");
uptime.NextValue();
return TimeSpan.FromSeconds(uptime.NextValue());
}
catch (Exception)
{
}
它在我的电脑上完美运行没有任何问题。但问题发生在我朋友的电脑上。在他的电脑上,运行以下行时抛出异常。
var uptime = new PerformanceCounter("System", "System Up Time");
例外是"Input String was not in Correct format"
。
答案 0 :(得分:1)
PerformanceCounter
的行为可能会有所不同,具体取决于权限等。 - 有关此问题的一些信息,请参阅MSDN。
另一点是,在Windows XP中,如果未配置分页文件,则某些性能计数器不可用(有关详细信息,请参阅http://support.microsoft.com/kb/884558/en-us)。
不相关的东西:
“吞咽”异常就像使用空catch
块一样,这是不好的做法!