RAD Studio 10.2.3 测试√
源码仓库(Gitee):https://gitee.com/xiaoyinhui
这个计时精度是根据自己电脑硬件配置决定的
我目前的可以精确到 0.1 微秒
使用实例
PS:需要引用单元 uHightAccuracyTimer 该单元在Git仓库有源码
1、创建高精度计时器对象
// 我这里是在窗体创建的时候创建 高精度计时器类对象
procedure TForm_Mmain.FormCreate(Sender: TObject);
begin
Button_2.Enabled := False;
U_Timer := THightAccuracyTimer.Create;
Memo_1.Lines.Add('计时频率=' + IntToStr(U_Timer.CPUFrequency));
Memo_1.Lines.Add('===========================');
end;
2、开始高精度计时
// 这里开始计,是记录开始计时数据
procedure TForm_Mmain.Button_1Click(Sender: TObject);
begin
Button_1.Enabled := False;
Button_2.Enabled := True;
U_Timer.StartTimer;
Memo_1.Lines.Add('开始计时=' + IntToStr(U_Timer.StartTime));
end;
3、结束计时(获取计时总时间)
// 可以按照自己的需求选择不同的方法
procedure TForm_Mmain.Button_2Click(Sender: TObject);
begin
Button_2.Enabled := False;
Button_1.Enabled := True;
// Memo_1.Lines.Add('从开始到结束时间=' + U_Timer.GetSecondFromS2EStr + ' 秒');
Memo_1.Lines.Add('从开始到结束时间=' + U_Timer.GetMillSecondFromS2EStr + ' 毫秒');
// Memo_1.Lines.Add('从开始到结束时间=' + U_Timer.GetMicroSecondFromS2EStr + ' 微秒');
Memo_1.Lines.Add('结束计时=' + IntToStr(U_Timer.EndTIme));
Memo_1.Lines.Add('---------------------------');
end;
4、使用完毕后记得释放创建的高精度类对象
procedure TForm_Mmain.FormDestroy(Sender: TObject);
begin
if U_Timer <> nil then
FreeAndNil(U_Timer);
end;
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END