首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

用多线程进行扫描,CPU资源占有非常厉害,如何解决

2012-03-14 
用多线程进行扫描,CPU资源占有非常厉害,怎么解决?用多线程来进进行扫描procedureTA.Executebeginwhiletru

用多线程进行扫描,CPU资源占有非常厉害,怎么解决?
用多线程来进进行扫描
procedure   TA.Execute;
begin
      while   true   do
      begin
          IF   Terminated   THEN   Break;
          .....
          Synchronize(DoScanA);  
          ........
         
      end;
end;

procedure   TA.DoScanA;
begin
    while   a=true   do
    begin
        ............
        ...........
        //由于a在一定时间范围内基本为true,所以会在不断的进行扫描,而且这个扫描必须不断进行的,调试后发现CPU资源占用非常大,基本上陷入死循环了,请问该怎么解决?请大虾帮帮忙,谢谢!
    end;  
end;



[解决办法]
sleep1毫秒试试看。。
[解决办法]
procedure TA.DoScanA; 
begin 
while a=true do 
begin 
............ 
........... 
sleep(1);
end;
end; 

[解决办法]
楼上的已经给出答案,即像Sleep(30);
[解决办法]
正统一点的方法是把线程的优先级调低, 这样在CPU忙的时候可以不太影响别的操作,在CPU空闲的时候可以全速运行。
[解决办法]
楼上

热点排行