读书人

用多线程进行扫描CPU资源占有非常厉

发布时间: 2012-03-14 12:01:12 作者: rapoo

用多线程进行扫描,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空闲的时候可以全速运行。
[解决办法]
楼上

读书人网 >.NET

热点推荐