我有这种方法:
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秒钟后的时间。怎么可能?
答案 0 :(得分:1)
通过使用sw.Elapsed.Milliseconds
,您可以得到经过时间的毫秒部分。如果要获取整个经过时间,请考虑使用sw.Elapsed.TotalMilliseconds
。