我怎样才能在Win32平台上的C实现时间驱动的任务?

我是C新手,并试图find一些代码片断,以找出如何在C中实现时间触发任务。我有两个函数的执行时间可能会有所不同,从50到200毫秒。 我想把这些函数传递给一个工作线程,这个工作线程应该每500毫秒运行一次。 有没有在C(win32平台)一个简单的方法(如java的TimerTask)来执行计时器任务与标准运行时库?

使用c可以使用win32 SetTimer函数

使用CreateTimerQueueTimer让窗口每500ms调用一次你的函数:

 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 */ ); } 

看看TimerQueue相关的功能:

http://msdn.microsoft.com/en-us/library/ms682483(v=vs.85).aspx