我在我的vb6应用程序中使用WinAPI,SetTimer和KillTimer(这是遗留项目)。 SetTimer会返回正确的事件ID,但实际的回调不会在set internval中调用。
我有
....
lngID = SetTimer(0, 0, 3000, AddressOf UpdateCallBack)
Public Sub UpdateCallBack(ByVal hWnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
......
UpdateCallBack有时会在几小时后甚至几小时后被调用。 我听说计时器是一个低优先级的消息,当没有其他消息需要处理时它会被处理。 有没有办法让消息得到处理? 如果使用SetTimer无法实现,我可以使用什么?
由于
答案 0 :(得分:1)
应用程序在预期回调时是否正在执行其他操作? 只要线程正在传递消息,你就应该在它发射后立即收到回调。
如果应用程序繁忙,您需要通过调用DoEvents
来运行消息循环。
答案 1 :(得分:0)