取两个时间的间隔(程序执行了耗时多久)

下面的代码,每700毫秒会更新界面,显示的比特率值的更新;

T1存储了历史时间节点;

T2存储了当前时间节点;

两者的查是毫秒级单位的,当差大于700毫秒就会再次执行代码:



这个代码,也可以用来计算某个过程执行耗时的时间;


procedure TFrmVideo.RemoteVideoStatsMsg(Sender: TObject; AMsg: TVMsg);

var

  oMsg: TSDKRemoteVideoStatsMsg;

  AUserId: string;

  bitrateKbps: Integer;

  AColor: TColor;

begin

  if not (AMsg is TSDKRemoteVideoStatsMsg) then

    Exit;

  oMsg := TSDKRemoteVideoStatsMsg(AMsg);

  AUserId := oMsg.UserId;

  if AUserId = UserID then

  begin

    t2 := GetTickCount;

    if T2 - T1 > 700 then

    begin

      bitrateKbps := oMsg.bitrateKbps;

      if bitrateKbps > 750 then

        begin

           BtnStateImage.ImageIndex:=3;

           AColor := $0050BC0F;

        end

      else if (bitrateKbps > 450) and (bitrateKbps < 750) then

      begin

          BtnStateImage.ImageIndex:=5;

           AColor := clYellow;

      end

      else

      begin

        BtnStateImage.ImageIndex:=6;

        AColor := clRed;

      end;

      LabState.Font.Color:=AColor;

      LabState.Caption := bitrateKbps.ToString + ' Kbps';

      T1 := GetTickCount;

    end;

  end;

end;






联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678