在冷启动后,Environment.TickCount是否始终从零开始?

时间:2017-11-07 10:38:12

标签: c# .net time clock

对于刚刚启动的系统,我一直认为Environment.TickCount 的值从零开始。目前Microsoft docs说:

  

TickCount将从零增加到Int32.MaxValue大约24.9天,然后跳转到Int32.MinValue,这是一个负数,然后在接下来的24.9天内增加回零。

这个措辞的方式并不一定意味着价值从零开始,只是它会在某个时刻达到零并向Int32.MaxValue递增。

我找不到任何明确说明冷启动后滴答计数值从零开始的引用。我的长期假设不正确吗?

我看到的那种价值是-1967939609。这适用于今天早上大约一个半小时前冷启动的Windows 10笔记本电脑。昨天下午5点左右,笔记本电脑正常关机(没有进入睡眠状态,也没有休眠状态),电源插座已关闭。

如果它有所不同,我正在运行VS2015中的代码,我尝试了几个不同的.Net Framework版本,结果相同。代码恰好是C#,但我猜不管语言结果都是一样的。

1 个答案:

答案 0 :(得分:2)

我在你的引言中读到的是:

启动:TickCount为0

24.9天后:点击Int.MaxValue并跳转到Int.MinValue

从那里你的引语说"然后在接下来的24.9天内将增加到零"在点击0之后,重复这个周期。

您所看到的负面价值的解释只是" Windows 10" (Windows 8具有相同的行为)。单击关机时,Windows 8/10可能实际上并未完全关闭(基于电源设置)。它实际上可能进入一些睡眠/休眠模式,甚至可能Windows 10自行启动(PC打开而不做任何事情)来安装更新。这意味着TickCount不会返回0.完全重启PC会将TickCount重置为0.

在我的Windows 7 PC上,我从未见过负面的TickCount,因为关机意味着在Windows 7中完全关闭。