我在日期时间上遇到了一些意想不到的情况。在进行一些单元测试时使用 UtcNow。当您调用 DateTime 时,似乎。Now/UtcNow 在快速连续的情况下,似乎在比预期更长的时间间隔内返回相同的值,而不是捕获更精确的毫秒增量。
我知道有一个秒表类更适合做精确的时间测量,但我很好奇,如果有人可以解释这种行为在日期时间?是否有关于日期时间的官方精度文档。现在(例如,精确到50毫秒以内?)?为什么日期时间。现在比大多数 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();
}