ElapsedTicks、ElapsedMilliseconds、Elapse.Millisecond和ElapsedT



我完全混淆了这4个。ElapsedMilliseconds(long)、ElapsedTicks(long?

我有一个功能

    {
        Stopwatch sw = new Stopwatch();
        sw.Start();
        MyTimeConsumingAction();
        sw.Stop();
        sw.//what?
    }

如何从Stopwatch对象的已用属性(以毫秒为单位)中获得长时间运行的进程所消耗的正确时间?

编辑:我尝试了msdn文档,但没有任何详细信息。。

Elapsed.TotalMilliseconds (double)返回自启动以来经过的整毫秒和分数毫秒的总数

例如在1.23456秒处停止的秒表将在该属性中返回1234.56。请参阅MSDN 上的TimeSpan.Total Milliseconds

Elapsed.Milliseconds (int)返回当前第二个中的整毫秒数

例如在1.234秒处的秒表将在该属性中返回234。请参阅TimeSpan.Milliseconds

ElapsedTicks(long)返回自秒表启动以来的刻度。

在与Stopwatch类有关的原始问题的上下文中,ElapsedTicks是经过的节拍数。滴答声以Stopwatch.Frequency的速率发生,因此,要计算经过的秒数,请计算:numSeconds = stopwatch.ElapsedTicks / Stopwatch.Frequency

旧的答案将ticks定义为100纳秒周期的数量,这在DateTime类的上下文中是正确的,但在Stopwatch类的上下文中将不正确。请参阅MSDN上的Stopwatch.ElapedTicks。

ElapsedMilliseconds返回一个四舍五入到最接近整毫秒的数字,因此这可能缺乏Elapsed.TotalMilliseconds属性所能给出的精度。

Elapsed.TotalMilliseconds是可以将执行时间返回到部分毫秒的double,而ElapsedMillisecondsInt64。例如0.0007毫秒的秒表将返回0或者1234.56毫秒将返回1234。因此,对于精度,请始终使用Elapsed.TotalMilliseconds

有关说明,请参阅MSDN上的Stopwatch.ElapedMilliseconds。

反映Stopwatch类显示ElapsedMilliseconds是转换(并取整)为毫秒的Elapsed ticks:

public TimeSpan Elapsed
{
  get
  {
    return new TimeSpan(this.GetElapsedDateTimeTicks());
  }
}
public long ElapsedMilliseconds
{
  get
  {
    return this.GetElapsedDateTimeTicks() / 10000L;
  }
}

msdn:的简短解释

ElapsedMilliseconds

此属性表示已用时间,四舍五入到最接近的整毫秒值。对于更高精度的测量,请使用Elapsed或ElapsedTicks属性。

ElapsedTicks

此属性表示基础计时器机制中经过的刻度数。刻度是秒表计时器可以测量的最小时间单位。使用频率字段将ElapsedTicks值转换为秒数。

Elapsed

使用"运行时间"属性可以使用TimeSpan方法和属性检索运行时间值。例如,可以将返回的TimeSpan实例格式化为文本表示形式,或者将其传递给另一个需要TimeSpan参数的类。

Elapsed就是TimeSpan。如果您想显示时间,那么只有Elapsed.ToString()应该执行

相关内容

  • 没有找到相关文章

最新更新