紧急停止情况下 让延时停下来我想到 是 WaitForSingleObject(pApp->Rstop,3000));让它延时3秒 紧急事件时结束延时
有没有别的方法 谢了

解决方案 »

  1.   

    大家 是不是没明白我的意思我写的串口控制我不想用 sleep(1000);  因为无法控制延时 有时候需要立刻停止延时Sleep() 是无法控制的除了 WaitForSingleObject 有没有别的方法延时 还能随时控制停止延时  
      

  2.   

    WaitForSingleObject就可以了去啊
    还有一种办法,看你什么精度要求了
    int i = 0;
    while(flag && i < 30)
    {
        Sleep(100);
    }
    哈哈
      

  3.   

    int i = 0;
    while(flag && (i++ < 200))

        Sleep(15); 
    }
    注意:WinXP默认情况下Sleep的精度最高就15ms左右,所以单位时间最好设置为15的倍数。
      

  4.   

    WaitForSingleObject 应该是比较理想的
      

  5.   

    使用while循环判断信号量 如:
    int i = 0;
    ...
    i = 1;
    ...while(i == 1)
    {
    sleep(3000)
    }
      

  6.   

    上面的 跟八楼的差不多while ()
     sleep(15) 这样是不是占用cpu太多
      

  7.   

    Sleep()函数阻塞线程执行时,是不会占用CPU的(至少Win98/2k/XP是这样,其它的没测试)。
      

  8.   

    WaitForSingleObject(pApp->Rstop,3000)); 初始为无信号状态
    紧急结束时,置pAPP->Rstop有信号SetEvent();