我对这4个完全感到困惑。ElapsedMilliseconds (long)、ElapsedTicks (long)、Elapsed.TotalMilliseconds (double) 和 Elapsed.Milliseconds (int) 之间有什么区别?
我有一个函数
{
Stopwatch sw = new Stopwatch();
sw.Start();
MyTimeConsumingAction();
sw.Stop();
sw.//what?
}
如何从 Stopwatch 对象的 elapsed 属性中获取长时间运行的进程消耗的正确时间(以毫秒为单位)?
编辑:我尝试了 msdn 文档,但那里没有任何详细信息。
Elapsed.TotalMilliseconds (double)
返回自启动以来经过的整数和小数毫秒总数
例如停在 1.23456 秒的秒表将在此属性中返回 1234.56。看时间跨度.TotalMilliseconds http://msdn.microsoft.com/en-us/library/system.timespan.totalmilliseconds.aspx on MSDN
Elapsed.Milliseconds (int)
返回当前秒的整数毫秒数
例如1.234 秒的秒表将在此属性中返回 234。看时间跨度.毫秒 http://msdn.microsoft.com/en-us/library/system.timespan.milliseconds.aspx
ElapsedTicks(长整型)返回自秒表开始以来的刻度。
在原始问题的上下文中,与秒表类相关,ElapsedTicks
是经过的刻度数。蜱发生率Stopwatch.Frequency
,因此,要计算经过的秒数,请计算:numSeconds = stopwatch.ElapsedTicks / Stopwatch.Frequency
.
旧答案将刻度定义为 100 纳秒周期的数量,这在 DateTime 类的上下文中是正确的,但在 Stopwatch 类的上下文中是不正确的。看秒表.ElapsedTicks http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.elapsedticks.aspx在 MSDN 上。
ElapsedMilliseconds
返回最接近的整毫秒的四舍五入数字,因此这可能缺乏精度Elapsed.TotalMilliseconds
财产可以给予。
Elapsed.TotalMilliseconds
is a double
可以将执行时间返回到部分毫秒,同时ElapsedMilliseconds
is Int64
。例如在此属性中,0.0007 毫秒的秒表将返回 0,或者 1234.56 毫秒将返回 1234。所以为了精度总是使用Elapsed.TotalMilliseconds
.
See MSDN 上的 Stopwatch.ElapsedMilliseconds http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.elapsedmilliseconds.aspx为了澄清。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)