C#DateTime.Now精度
在执行一些单元测试时,我只是遇到了DateTime.UtcNow一些意外的行为。看来,当您快速连续调用DateTime.Now/UtcNow时,似乎可以在比预期更长的时间间隔内返回相同的值,而不是捕获更精确的毫秒增量。 我知道有一个秒表类更适合进行精确的时间测量,但是我很好奇是否有人可以在DateTime中解释这种行为?是否有记录DateTime.Now的官方精度(例如,精度在50毫秒内?)?为什么将DateTime.Now设置为比大多数CPU时钟所能处理的精度低?也许它是专为最低公分母设计的? public static void Main(string[] args) { var stopwatch = new Stopwatch(); stopwatch.Start(); for (int i=0; i<1000; i++) { var now = DateTime.Now; Console.WriteLine(string.Format( "Ticks: {0}\tMilliseconds: {1}", now.Ticks, now.Millisecond)); } stopwatch.Stop(); Console.WriteLine("Stopwatch.ElapsedMilliseconds: {0}", stopwatch.ElapsedMilliseconds); Console.ReadLine(); }