在一个函数中有如下语句
UINT_PTR uResult=SetTimer(NULL,NULL,100,CComm::DoTimer);
  if(!uResult)printf("failed!\n");
else printf("**:%d\n",uResult);
响应函数定义
void CALLBACK CComm::DoTimer(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
int nSent;
printf("Hello!\n");

}
运行后函数DoTimer
一直没有运行
请问是怎么回事?

解决方案 »

  1.   

    多半是因为在Console中往往只有一个线程,所以你虽然设了Timer,但你的线程将一直运行下去,直至结束,所以这DoTimer()没有机会运行.
      

  2.   

    console中不能使用SerTimer的,论坛中已经提过好几次了,你可以搜索一下,肯定有控制台程序中使用定时器的方法。
      

  3.   

    有谁知道如何在console中用定时器的方法吗?
    请说详细一点好吗?
    一定给分!
    ^_^
      

  4.   

    你还有几种方案定时:1. WaitForXXXX, MsgWaitForXXX 系列. 不过这个比较麻烦. 
    2. 多媒体定时器. 到msdn查 timeSetEvent
    3. 内核级定时器.到msdn查 CreateWaitableTimer