[问题] Multimedia Timer 超时的问题

楼主: licheer (Keep The Faith)   2019-01-11 14:15:20
开发平台(Platform): Windows7
编译器(Ex: GCC, clang, VC++...) VC++
mmtimer的时间间隔设为2ms,其中故意放一个会超时的工作 > 2ms
以MFC Timer来看, 时间就是被打乱而已
但mmtimer会被影响,不只是本身的UI会卡住,连同Windows也会跟着卡住
请问有大大知道为什么会这样吗?
谢谢
const int timePeriod = 2;
const int timeRes = 1;
void CALLBACK TimeEvent
(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
{
for (int i=0; i<999999; i++)
{
}
}
作者: Schottky (顺风相送)   2019-01-11 16:07:00
把时间间隔改回默认值就不会了。那个timeBeginPeriod()是罪恶的根源,它把系统时间中断从每秒18.2次加速到每秒500次,整个 Windows 效能自然悲剧。
楼主: licheer (Keep The Faith)   2019-01-11 23:23:00
因为某一次测试时,发生整个Windows都卡住原本用MFC Timer或是 C# Timer, 即便超时也只是拉长间隔没料到mmtimer会这么严重
作者: Schottky (顺风相送)   2019-01-12 01:18:00
你把 timeBeginPeriod() 那行删掉就什么事都没有了

Links booklink

Contact Us: admin [ a t ] ucptt.com