为什么计时器不计数?

时间:2019-11-15 10:20:20

标签: c# asynchronous

我有这种方法:

    internal async Task PausingForPeriodOftimeAsync() {
        var sw = new Stopwatch();
        sw.Start();
        Console.WriteLine( $"1. - async: Running for {sw.Elapsed.Milliseconds} ms");
        Console.WriteLine( $"1. - async: Time: {DateTime.Now.ToLongTimeString()}");
        await Task.Delay(5000);
        Console.WriteLine($"2. - async: Running for {sw.Elapsed.Milliseconds} ms");
        Console.WriteLine($"2. - async: Time: {DateTime.Now.ToLongTimeString()}");
    }

屏幕上的结果:

  

1.-异步:运行0毫秒

     

1.-异步:时间:11:07:30

     

2.-异步:运行7毫秒

     

1.-异步:时间:11:07:35

我不明白为什么计时器只运行5毫秒,而DateTime(正确地)显示5秒钟后的时间。怎么可能?

1 个答案:

答案 0 :(得分:1)

通过使用sw.Elapsed.Milliseconds,您可以得到经过时间的毫秒部分。如果要获取整个经过时间,请考虑使用sw.Elapsed.TotalMilliseconds