我使用C ++语言在visual studio 2010中启动了一个新的窗体。 只有一个定时器配置为每1ms(1毫秒)生成一个事件
在timer事件处理程序中,我只增加一个名为Counter的变量(仅在此事件中使用),并在文本框中写入此变量的当前值,以便我可以看到它的当前值。
考虑到定时器事件每1ms发生一次,每1秒,变量Counter应增加1000次,但Counter变量大约需要15秒才能增加1000次。 15秒后,文本框中显示的值为1000。
我将定时器事件设置为1ms,但似乎事件仅发生在每个15ms,因为变量Counter比理论上花了15倍(15秒)达到1000(1秒= 1000 * 1ms) )。
有人对如何解决这个问题有一个想法吗?
我需要每1ms生成一个事件,我将调用另一个函数。 我每1ms间隔产生一次事件有多冷?或者尽可能少于此。
一个花药论坛的人告诉我创建一个线程来做这个工作,但我不知道该怎么做。
我使用Windows 7专业版64位,我不知道64位操作系统是否与此问题有任何关系。我认为PC硬件足以生成事件。 Core 2 duo 2GHz和3GB RAM。
答案 0 :(得分:0)
Windows窗体计时器组件是单线程的,精度限制为55毫秒
这应该解释这种差异。你的方法似乎有点错误恕我直言。让线程每1ms唤醒一次,并且在preemptive multitasking OS.
中非常难以做到你可以做的是
这种方法比任何计时器事件都更精确。