我知道,在Windows 7之前,标准内核标记每个15.6毫秒,并且可以使用timeBeginPeriod和timeEndPeriod进行修改。凭借Win 8,内核显然已经无利可图了。
但是根据这些信息,我无法推断出计时器是如何工作的。我可以想象,在一个排序列表中,每隔15.6毫秒(或者当前的分辨率,对于Win8 +,idk)都会进行例行检查,其中包含所有当前活动的计时器所需的通知时间,可能以系统启动后经过的毫秒数表示。它只需要检查前几个定时器(直到它找到一个尚未准备好的定时器)通知正确的客户端,并在下一个定时事件的适当位置重新插入列表。
这就是我可能会在概念上做的事情,但是MS的人肯定会考虑这个问题的时间比我长得多,只是因为我无法找到有关它的信息。 (也许有一个小人坐在内核中执行此任务?)
所以,如果有人知道如何完成,我将不胜感激。链接欢迎。
谢谢你的时间!