sleep(1000*60);
怎样早点结束sleep();

解决方案 »

  1.   


    刚接触VC
    我是做启动画面
    时间到或者按ESC直接跳过动画
      

  2.   

    算个思路吧.
    做个定时,时间到了Close动画
    然后CreateEvent..WaitForSigleObject 等待Event. 到到了也close
    Esc的时候触发
    SetEvent
      

  3.   

    不可能的,除非你自己再封装一个sleep
    里面弄个循环,然后让它跳出循环
      

  4.   

    中断Sleep还是比较简单的,使用KexLib里面的
    int InvokeThread(DWORD dwTid,INVOKEPROC proc,DWORD par1,DWORD par2,DWORD par3); 
    即可唤醒Sleep的线程,来执行其它任务。
    http://topic.csdn.net/u/20080529/22/3d7f49a7-4a05-4edd-9f62-50ba1c29baac.html
      

  5.   

    最简单的就是用循环判断的方法,单独的sleep不好中断。
      

  6.   

    在窗口中最好不要用sleep,会使窗口失去响应,用定时器最合适。线程中的Sleep是可以被中断的,就如8楼所说,但这个中断并不会导致Sleep退出,而仅仅是激活线程干点别的活,干完后继续回到Sleep中,必须等到超时了才返回
      

  7.   

    忘了,如果LZ想使用Sleep的话,最好还是使用SleepEx。
    理由如下:
    SleepEx假设是60S就唤醒,那么我们可以在30s就唤醒线程,并且线程唤醒后不会再继续Sleep了。