0
HANDLE TimerTask(unsigned int period,WAITORTIMERCALLBACK task, void* arg);
void main()
{
HANDLE h1,h2,h3;
double Task2ms_Raster, Task10ms_Raster, Task100ms_Raster ;
h1=TimerTask(2,TASK1,&Task2ms_Raster);
h2=TimerTask(10,TASK2,&Task10ms_Raster);
h3=TimerTask(100,TASK3,&Task100ms_Raster);
}
HANDLE TimerTask(unsigned int period,WAITORTIMERCALLBACK task,void* arg)
{
HANDLE HTimer =NULL;
//set the timer to call the timer routine
if(!CreateTimerQueueTimer(&HTimer, NULL, (WAITORTIMERCALLBACK)task,(PVOID) arg, 0, period*1000, 0))
{
printf("CreateTimerQueueTimer failed (%d)\n", GetLastError());
return NULL;
}
return HTimer;
}
我創建了一個處理程序來處理三個任務TASK1,TASK2和TASK3(函數定義未顯示)。應該每2ms,10ms和100ms調用TASK1,TASK2和TASK3。我在上面的代碼週期* 1000中指定了毫秒執行,但是當我運行應用程序時,它執行得非常慢。任何人都可以請識別錯誤?以毫秒爲單位創建計時器隊列
的錯誤:Windows不是一個實時系統。如果你想要更好的定時器,你應該使用多媒體定時器並調用「timeBeginPeriod(1)」。 –