Используйте CreateTimerQueueTimer
, чтобы окна вызывали вашу функцию каждые 500 мс:
void CALLBACK timer_function(void* /*lpParameter*/,BOOLEAN /*TimerOrWaitFired*/)
{
/* do stuff */
}
HANDLE timer_handle;
void start_timer()
{
void* parameter; /* passed as lpParameter of timer_function */
DWORD milliseconds_before_first_call=100; /* execute after 100ms */
DWORD milliseconds_between_calls=500; /* and then every 500ms */
CreateTimerQueueTimer(&timer_handle,NULL,timer_function,parameter,
milliseconds_before_first_call,milliseconds_between_calls,
WT_EXECUTELONGFUNCTION /* the function takes a while, and may block */
);
}