您的位置:首页 > 其它

timeSetTimer 在XP上超过7 分钟,9 秒之后的莫名其妙的问题

2010-06-09 09:47 489 查看
ref : http://support.microsoft.com/kb/974281/en-us/

ref : http://support.microsoft.com/kb/974281/

这是 32-位长 timeSetEvent uDelay 参数的溢出。

即使您以毫秒为单位内部中功能设置 uDelay 参数它使用 100 纳秒为单位。 因此 429,496 毫秒 (4,294,960,000 = 0xFFFFE380) 的值是最大值。 这是大约 7 分钟,9 秒。 如果 uDelay 设 429,497 几乎立即会发生该事件。

如果我们检查这些值以十六进制,我们看到:

429,496(ms) * 10,000 = 4,294,960,000 (100ns) = 0xFFFFE380
429,497(ms) * 10,000 = 4,294,970,000 (100ns) = 0x00000a90
第二个值超出了限制,十六进制值进行计数再次重新启动。

仅当使用 TIME_PERIODIC 模式时,将发生此问题。

这篇文章中的信息适用于:

Microsoft Windows XP Professional Edition

Microsoft Windows XP Home Edition

Microsoft Windows Server 2003, Enterprise x64 Edition

Microsoft Windows Server 2003 Enterprise Edition

Microsoft Windows Server 2003, Standard x64 Edition

Microsoft Windows Server 2003 Standard Edition
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: