sleep()或for(int i=0;i<3000;i++);

解决方案 »

  1.   

    sleep影响其它进程吧?用timer是否更理想?
      

  2.   

    sleep(30000),而且这个函数对系统性能一点也没影响,调用这个函数等于告诉系统,在30000毫秒内不用给我分配执行时间
      

  3.   

    <p><font face="隶书" size="7" color="#FF0000"><b>如果还有什么问题,请和我联系</b></font></p>
      

  4.   

    for循环不行啊,你怎么知道3000就是30秒?而且会极度的占用cpu时间。
      

  5.   

    哈哈,蹭分!sleep(30000)绝对没错
      

  6.   

    xinxin() (  ),tomcat_ok(雄猫) ,timer怎么用呀?
    我用Sleep(30000),结果其他的程序也都不执行了,死机30秒,这不行
      

  7.   

    sleep(30000);对内存影响太大。
    用Timer最好了。
      

  8.   

    SetTimer
    WM_TIMER消息
    KillTimer
      

  9.   

    如果想很好地利用CPU的话,最好采用多线程。这样,在一个线程中睡眠,不会影响其它线程的执行。
      

  10.   

    看来你用的是单线程,长时间的Sleep把线程阻塞住了。如果不想或不会多线程的话,加一个消息泵也可以防止程序挂起:for (int i = 0; i < 300; i++)
    {
    PumpWndMsg();
    Sleep(100);
    }void PumpWndMsg()
    {
    MSG msg;
    while (::PeekMessage(&msg, (HWND) NULL, 0, 0, PM_REMOVE))
    {
    if ( msg.message==WM_QUIT )
    {
    ::PostQuitMessage(-1);
    break;
    }
    if (!AfxGetApp()->PreTranslateMessage(&msg))
    {
    ::TranslateMessage(&msg);
    ::DispatchMessage(&msg);
    }
    }
    }
      

  11.   

    windows的精确计时是一个很难解决的问题,但这问题只出现在ms级,sleep(10)
    作一次就知道了。但是,半分钟,如此大的时间间隔,直接SetTimer(hWnd,nIDEvent,uElapse,lpTimerFunc),不信用QueryPerformanceFrequency(lpTime);QueryPerformanceCount(lpTime)测一下,毫秒级的误差。
    对了,老机器的误差会大些。