高分求解~~~~~SetTimer问题,有时回调函数没有起来。解决问题的话另有高分馈赠!!!!
我有一个线程,是管理Scoket通讯超时的。
线程中开启一个Timer如下:
m_iTimer = ::SetTimer(NULL, 1, 30*1000, (TIMERPROC)Timer2Proc);
也就是30秒后启动计时器,进行通讯电文重发或结束。
Timer2Proc为回调函数。
通常情况下,30秒后Timer2Proc能被调用。
但是电文通讯1,2次后,制造一次超时,中间Socket断开,此时30后的Timer2Proc没有被激活,导致该次通讯一直没有结束。
经调查,可以确定该线程没有处于忙碌状态(因为该线程就开一个计时器而已),也没有任何地方把这个Timer kill掉。
谁能帮忙解决一下啊~~~~~~
解决问题的另有高分馈赠~~~~~
[解决办法]
你的socket是基于消息模式的socket吗?如果是,可能在同步读写的时候,堵塞了,那么你的
回调函数就调用不起来了。
[解决办法]
我觉得你线程 有问题。
你把time赌塞了。
代码能否给我看看 xxyyboy@163.com