【发布时间】:2014-01-21 08:30:21
【问题描述】:
我有一个简单的控制台应用程序,其主体如下:
Console.WriteLine(DateTime.Now.Ticks.ToString());
Console.WriteLine(DateTime.Now.Ticks.ToString());
Console.WriteLine(DateTime.Now.Ticks.ToString());
Console.WriteLine(DateTime.Now.Ticks.ToString());
Console.WriteLine(DateTime.Now.Ticks.ToString());
Console.WriteLine(DateTime.Now.Ticks.ToString());
Console.WriteLine(DateTime.Now.Ticks.ToString());
Console.WriteLine(DateTime.Now.Ticks.ToString());
Console.WriteLine(DateTime.Now.Ticks.ToString());
Console.WriteLine(DateTime.Now.Ticks.ToString());
这些是三个不同运行的输出:
635258949900018675
635258949900028676 // +10001
635258949900028676 // +0
635258949900038677 // +10001
635258949900038677 // +0
635258949900038677 // +0
635258949900038677 // +0
635258949900038677 // +0
635258949900038677 // +0
635258949900038677 // +0
635258949937502423
635258949937512424 // +10001
635258949937512424 // +0
635258949937512424 // +0
635258949937512424 // +0
635258949937522425 // +10001
635258949937522425 // +0
635258949937522425 // +0
635258949937522425 // +0
635258949937522425 // +0
635258961813519906
635258961813529907 // +10001
635258961813529907 // +0
635258961813529907 // +0
635258961813529907 // +0
635258961813539908 // +10001
635258961813539908 // +0
635258961813539908 // +0
635258961813539908 // +0
635258961813539908 // +0
人们可能会猜测这些值不同是正常的,因为在 Console.WriteLine 执行之间需要时间。行之间的间隔是一个常数值 10001,但不知何故,这个值不会在每一步都添加到前一个值。有时是,有时不是。我想知道为什么会这样。
【问题讨论】:
-
不清楚你在问什么 - 据我所知,两个不同值之间的间隔似乎总是 10001 滴答。您真的只是在问为什么更改之间的调用次数不同吗?如果是这样,请记住您的机器中发生了多少事情 - 以及有多少事情可以变化。
-
对不起。我的意思是它不会在每一步都增加 10001。有时会增加,有时不会。
-
谢谢@JonSkeet。您几乎总是回答与日期时间相关的问题 :)。我希望你能看到我一直在寻找答案的另一个问题。我知道你没有太多时间,但你能分享你对此的看法吗?提前致谢。 stackoverflow.com/questions/20924278/…
-
老实说,你得到的答案对我来说看起来不错。这可能就是我写的。
-
感谢您的打扰。