SetTimer在我的vb6应用程序中不起作用

时间:2012-01-04 00:46:26

标签: winapi vb6 timer

我在我的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无法实现,我可以使用什么?

由于

2 个答案:

答案 0 :(得分:1)

应用程序在预期回调时是否正在执行其他操作? 只要线程正在传递消息,你就应该在它发射后立即收到回调。

如果应用程序繁忙,您需要通过调用DoEvents来运行消息循环。

答案 1 :(得分:0)