公司的一个项目中要用到timer。这个 timer设置的长度是40ms,最初的作用是用来刷新界面。后来增加了5分钟和服务器交互一次的需求,于是仍使用这个timer,在timer次数累加到7500时和服务器交互。可是测试中发现,实际的交互时间间隔是近6分钟,一直很困惑,因为交互的时间一般不到一秒。
后来查资料做实验找到了原因:在NT下timer的分辨率是15.6毫秒左右,所以设置的40ms的timer实际上是47ms响应一次,0.047s*7500=352.5s,正好是近6分钟
本文探讨了在NT系统中,使用40ms定时器进行界面刷新及与服务器交互的实际效果。通过实验发现,由于系统本身的限制,实际的定时器响应时间为47ms,导致与服务器交互的时间间隔接近6分钟而非预期的5分钟。
公司的一个项目中要用到timer。这个 timer设置的长度是40ms,最初的作用是用来刷新界面。后来增加了5分钟和服务器交互一次的需求,于是仍使用这个timer,在timer次数累加到7500时和服务器交互。可是测试中发现,实际的交互时间间隔是近6分钟,一直很困惑,因为交互的时间一般不到一秒。
后来查资料做实验找到了原因:在NT下timer的分辨率是15.6毫秒左右,所以设置的40ms的timer实际上是47ms响应一次,0.047s*7500=352.5s,正好是近6分钟
257

被折叠的 条评论
为什么被折叠?