Windows如何管理其计时器。 例如,如果我有1分钟的超时时间,它会标记(计数)时间,还是为到达该时间设置唤醒时间?
我问的原因是,我们有一个有时会失败的应用程序,而这种情况经常发生在由于未知的原因将机器时间提前将近60秒。
The system time has changed to ?2018?-?08?-?16T22:07:21.184000000Z from ?2018?-?08?-?16T22:06:22.931000700Z.
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Windows-Kernel-General" Guid="{A68CA8B7-004F-D7B6-A698-07E2DE0F1F5D}" />
<EventID>1</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000010</Keywords>
<TimeCreated SystemTime="2018-08-16T22:07:21.184000000Z" />
<EventRecordID>59985</EventRecordID>
<Correlation />
<Execution ProcessID="1636" ThreadID="1712" />
<Channel>System</Channel>
<Computer>PDC2FEP007.domain</Computer>
<Security UserID="S-1-5-18" />
</System>
- <EventData>
<Data Name="NewTime">2018-08-16T22:07:21.184000000Z</Data>
<Data Name="OldTime">2018-08-16T22:06:22.931000700Z</Data>
</EventData>
</Event>
很显然,我们将尝试找出令人讨厌的时间设置程序,但是在此期间,我只是很好奇
答案 0 :(得分:0)
我在互联网上发现了以下内容: “根据MSDN,应用程序使用计时器在指定的时间过去之后为窗口安排事件。这意味着,如果我们创建计时器并指定uElapse毫秒的时间间隔,它将每隔uElapse毫秒执行一次“某事” ,直到我们销毁它为止。由我们来决定什么是“东西”。
因此,我特别从这一点出发假设:“它将每隔u毫秒执行一次“操作”,直到我们销毁它为止”,它每毫秒都在计数。