线程执行的时间间隔
刚刚学了一点线程的东西,为了在指定的时间间隔之后继续执行,我是这样实现的:
procedure TWatchThread.execute;
var
dt:TDateTime;
begin
try
while(true) do begin
dt:=Now;
if(SecondsBetween(self.dtLoadedTime,dt)<self.nInterval) then continue;//其中self.nInterval为时间间隔的秒数
Synchronize(self.drawQuality);
self.dtLoadedTime:=dt;
end;
end;
如此一来,这个线程对CPU的占用率极高;
想到用一个Timer,每隔一定时间间隔让线程执行,又觉得比较麻烦。请问有什么办法在线程内部实现这样一个功能?
望各位援手!