1.常用方式
var liNowTick : Integer; //局部变量
var liOkTick : Integer; //全局变量
liNowTick := GetTickCount div 1000;
if (liNowTick - liOkTick ) < 10 then
begin
continue;
end;
liOkTick :=liNowTick ;
2.但是GetTickCount 折算成天是49.7。也就是说当服务程序连续跑了50会存在
例如 (liNowTick - liOkTick ) = - 4293000 即liNowTick < liOkTick的情况。
故针对这种情况就需要加上管制!!!
var liNowTick : Integer; //局部变量
var liOkTick : Integer; //全局变量
liNowTick := GetTickCount div 1000;
if (liNowTick - liOkTick ) < 10 then
begin
//if (liNowTick - liOkTick ) < -4293000
if (liNowTick < liOkTick )
then liOkTick :=0;
continue;
end;
liOkTick :=liNowTick ;
3.使用绝对值函数Abs
Nowtick := GetTickCount() div 1000;
if Abs(Nowtick - aRe_Cmd[i].hb_tick) > 10 then // 10检查一次
begin
ClearRePlcCMD(i);
end;