各位大侠,因为小弟工作的需要,开发一个小灵通发送短消息的服务程序,可是该程序的CPU利用率太高,达到95%以上,如此服务器响应其它程序的速度慢了很多,该如何解决,小弟还不是很清楚,请各位大侠指教,一当问题解决,小弟送上100分。
系统说明:
  该系统采用多个线程操作,主要有三种类型:取短消息线程,发送消息线程,数据库操作线程。
  如果每种类型的线程有多个实例,CPU占用率将会更高,该如何解决?

解决方案 »

  1.   

    在线程序的中的 execute中 
    var
      FStop : THandle;
    begin
      FStop := CreateEvent(nil, False, False, nil); 
         repeat
               if WaitForSingleObject(FStop, 1000)=WAIT_TIMEOUT then  //1 秒
               begin                你的代码。               end; 
         until Terminated;   
      CloseHandle(FStop);
    end;
    建设用C++写,效率比较高。
      

  2.   

    循环中:
      sleep(100);
      Application.ProcessMessage;