设定了多个SetTimer,当前一个OnTimer执行还没有结束的时候又有多个定时到达,这时候程序是怎样执行的?会有多个OnTimer同时执行吗?另外下面两段话讲的一样吗?这中间的处理过程要怎么理解?OnTimer()内部正在进行大量的处理,但没有调用任何可能把控制权交还给Windows的函数,那么第二个WM_TIMER消息将被保留在程序的消息队列之中。如果因为OnTimer()迟迟不能返回,最后导致第三个、第四个甚至更多的WM_TIMER消息也到来了,此时后面来的WM_TIMER消息将会冲掉前面的WM_TIMER消息,也即消息队列中只保留最后一条WM_TIMER消息,其余的都被丢弃了,这与WM_PAINT消息是类似的。
解决方案 »
- 关于CMySplitterWnd::OnMouseMove() 问题..
- 心跳包的线程同步问题
- ListCtrl的LVN_ITEMCHANGED好像只支持方向键换行,如果用鼠标点击换行,当前行为换行前的行,不只大家发现没有?
- 请问:如何同时使用stl的stack和打开读写文件?
- 列表框问题3:用API怎样得到选中的那一行的序号?
- windows程学设计里面的/platform sdk/user interface servie/....在哪里能找到?
- 我在VC中写一个DLL,在VB中引用,请问我如何在VC中调试
- 一个关于内存释放的问题!很有趣
- 急救,谁有用汇编编成的文本文件编辑器,要有窗口模式的。不支持鼠标都可以。
- 在线急等 CString输出至txt文件 我用ofstream做输出有问题
- send ,数组,指针,memcpy的问题
- 如何模拟键盘输出多个字符呢
显然而且只能是像上面你说的那样的行为。
是不是我在OnTimer中间添了这些之后就会有多个OnTimer同时执行了?if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )//检查线程消息队列
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}