我在程序中有两个线程,一个是读串口线程,一个是写串口线程,在写串口线程中是一个望串口写数据的死循环,但是占用CPU时间太多,在启动其他进程时经常出现系统呆滞现象。
  这是什么原因?    会是什么原因让线程占用大量的CPU时间?

解决方案 »

  1.   

    首先你确定一下是占用CPU过大还是其它。如果是占用CPU过大, 在线程循环里面多半是缺少了SLEEP(XXX)之类东东。如果是线程同步时候造成的系统呆滞,则作另外一些机制上的优化。
      

  2.   

    在循环中增加:
       Application.ProcessMessage;
    死循环是在采集数据的时候吧,可能等2秒或5秒,最好不要超过5秒。增加Application.ProcessMessage目的是让程序处理其它的事情,不至于占用cpu太多的时间.
      

  3.   

    对,加Application.ProcessMessage比较好!