我想让一个工作线程一段时间什么都不做,等待其他消息的唤醒。
不能用SLEEP,这样线程就任何消息都不接收了。
在我想的是这时线程应该只做RECIEVEMESSAGE和PEEKMEESSAGE这样的工作。请问各位,这样的函数该怎么写?

解决方案 »

  1.   

    用WaitForSingleObject()这个函数可以等待另外的现程完成再继续下去
      

  2.   

    MSG tMsg;
    PeekMessage(&tMsg, NULL, 0, 0, RM_NOREMOVE);
    while(GetMessage(&tMsg))
    {
    switch(tMsg.message)
    {
    case 你要等待的消息:
    ...
    break;
    }
      

  3.   

    WaitForSingleObject仍然是阻塞本线程的消息,跟SLEEP相比应该没太大的区别吧?TO FLYELF:
    你教我的代码可以写在任何一个线程地方吗?
      

  4.   

    GetTickCount()。
    if(GetTickCount()-dwTickCountBegin>=1000)
    {
       //已经过了一秒了。
    }
    else
    {
       //还得等。
    }