我有以下的身体一个简单的控制台应用程序:为什么DateTime.Now.Ticks不一致?
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。你几乎总是回答有关日期时间的问题:)。我希望你能看到我的另一个问题,我很长一段时间寻找答案。我知道你没有太多时间,但请你分享一下你的看法?提前致谢。 http://stackoverflow.com/questions/20924278/why-does-timespan-tostring-require-escaping-separators –