cpu一直在测试串口是否有数据

解决方案 »

  1.   

    你是一直在ReadFile吗?你可以在循环中让你的程序Sleep一段事件。或者用timer,隔一段时间读一次。
      

  2.   

    在测试串口没有数据时,调用一个Sleep函数歇一歇,应该可以!
      

  3.   

    在测试串口没有数据时,调用一个Sleep函数歇一歇,应该可以!
      

  4.   

    因为实用同步方式,一旦出现问题或设置不好,会一直占用CPU时间,建议采用异步方式,或用事件驱动方式
      

  5.   

    建议采用异步方式,用事件驱动方式,或用WaitforObject等之类的,再或用I/O完成端口
      

  6.   

    为何不用CSieralPort这个类。网到处有!
      

  7.   


    同步方式当然CPU占用为100%,因为它不停的监视串口
    起动线程,后台监视!使用异步方式您可以查找前些日子我回答的一个关于串口的问题,上面有一个串口类,可用于监控.
      

  8.   

    用callback,中断调用,减少系统占用时间。
      

  9.   

    采用异步方式WaitForSingleObject()等待WaitCommEvent()中的事件
      

  10.   

    其实很简单,任何一个线程和进程优先级为NORMAL时,如果你不在WHILE中有SLEEP或者WAIT什么的,CPU占用率都很高。只要你有SLEEP(1)或者WaitForSingleObject(,1);
    马上就没事了。