本帖最后由 dawnflowers 于 2012-02-21 21:44:24 编辑

解决方案 »

  1.   

    sleep有让位动作吗?刚在msdn发现了个   Thread.Sleep(int),按解释,好像就是在延时期间,cpu完全给其他程序用,具体哪位兄弟解决下?我的目的很简单,在延时过程中,程序不要还占着cpu负荷,系统也不会因为这个延时而卡
      

  2.   

    sleep是线程休眠的函数,参数就是毫秒,足够你的精度了。sleep( 1000 )就是休眠1秒,作用就是让当前线程被挂起1秒,1秒之后,再按需唤醒线程。因此,这个不是绝对准确的唤醒时间。还有一个用法 sleep(0),让当前线程立刻被挂起,然后立刻重新让系统调度需要被唤醒的线程执行。这个比较占cpu。
      

  3.   

    没太看明白你想干什么
    看你需求sleep足够了
      

  4.   

    Sleep(0) 多加几个地方 CPU占用率骤降
      

  5.   

    Sleep(15);
    效果相当的好,唯一需要注意的是,XP系统下,默认线程时间片粒度是15ms,所以,Sleep(1)效果等于Sleep(15);
    Sleep(0);比较特殊,作用上面已经有人说了。说用sleep、delay延时时,如果延时很长,会导致程序或整个系统假死,那是把Sleep()加到了消息循环里面,如果Sleep的时间较长,当然会假死了;这是用法不对。
      

  6.   

    PeekMessage
    TranslateMessage
    DispatchMessage
      

  7.   

    使用sleep没有错的,你说的假死是进程的消息被阻塞了,导致显示不正常.
    你可以在线程中使用sleep.