在控制台应用程序中工作的计时器

问题描述:

我试图让我的C++应用程序中有一个计时器。在控制台应用程序中工作的计时器

我可以定义我的定时器:

#define IDT_TIMER WM_USER + 200 
UINT Timeval; 
UINT TimerID = 1; 
UINT TimerMS = 20; 

开始停止计时器方法:

UINT NAHDPbx::StartTimer (UINT TimerID) 
    { 

     UINT TimerVal; 
     TimerVal = thewindow->SetTimer(TimerID, TimerMS, NULL); // Starting the Timer 
     return TimerVal; 

    }// end StartTimer 

BOOL NAHDPbx::StopTimer (UINT TimerID) 
    { 
      if (!KillTimer (TimerID)) 
      { 
      return FALSE; 
      } 

     return TRUE; 

    } // end StopTimer 

我启动定时器这样的:

Timeval=StartTimer(TimerID); 

但是在我的代码计时器剔不发火:

void NAHDPbx::OnTimer(UINT nIDEvent) 
{ 
    StopTimer(TimerID); 

     //Do stuff 

    StartTimer(TimerID); 
} 

让计时器工作的任何例子?我的最终目标是通过UDP接收数据,并且需要一种同时发送和接收的方式。

+1

你在使用什么API?我猜你正在使用WIN32 API,但是在任何人都能弄清楚你犯了什么错误之前,你需要显示更多的代码,比如你的主函数。 – ksming

+1

可能的重复[我可以在控制台C++应用程序中使用SetTimer()API](http://*.com/questions/7531650/can-i-use-a-settimer-api-in-a-console- C-APP) –

如果控制台应用程序退出,定时器处理程序将超出范围并且什么也不会发生。