线程执行的时间间隔

weidegong 2003-07-09 04:50:16
刚刚学了一点线程的东西,为了在指定的时间间隔之后继续执行,我是这样实现的:
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,每隔一定时间间隔让线程执行,又觉得比较麻烦。请问有什么办法在线程内部实现这样一个功能?

望各位援手!
...全文
109 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weidegong 2003-07-09
  • 打赏
  • 举报
回复
多谢!
koma2003 2003-07-09
  • 打赏
  • 举报
回复
sleep(毫秒数)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧