循环开始后,让TIMER控件的ENABLE为真,循环结束后,让TIMER控件的ENABLE为假,要怎么计算循环要花多少时间?
我写了个就像我说的一样可是计算出来的时间很不精确,而且只能是计算一分钟这内的时间,就是循环开始时取得当前的秒数,循环结束后再取秒数,最后两个相减~~~可是要是超过一分钟了就会有错误。可不可以精确到毫秒的啊?帮帮忙~~
我写了个就像我说的一样可是计算出来的时间很不精确,而且只能是计算一分钟这内的时间,就是循环开始时取得当前的秒数,循环结束后再取秒数,最后两个相减~~~可是要是超过一分钟了就会有错误。可不可以精确到毫秒的啊?帮帮忙~~
解决方案 »
- 用QQ、做网站、玩网游 都有人盗号!
- first time to CSDN,give up the score
- 如何使用help&manual制作帮助阿?
- Delphi的一个bug
- 类型转换提示有内存错误,请教,马上给分
- 哪位高手替我翻译一句(英语)
- 从网上下载一些源代码运行是经常提示File notfound :syshook.dcu 之类的,这是为什么?
- 为什么mediaplay的close属性不起作用呢?
- 请进来看看!
- 如何获得一个汉字的ascii码?
- 远程SQL数据导入本地Access数据库
- 使用BDE连接intebase的数据库,为什么在win2000下面运作正常,在XP下面就运作不起来?
使用GetTickCount(), 其返回开机至目前的毫秒数
注意: 如果你的机器是连续运行, 其加至 $FFFFFFFF 时, 下一毫秒会回到0, 这大概需要49.7天// 返回两个Tick之间的毫秒数
DWORD GetTickDiff(oldTick, newTick: DWORD): DWORD;
begin
if oldTick > newTick then
Result := $FFFFFFFF - oldTick + newTick
else
Result := newTick - oldTick;
end;procedure YourProc;
var
OldTick: DWORD;
begin
oldTick := GetTickCount;
repeat
// ...
until (...); // 你的循环
ShowMessage(IntToStr(GetTickDiff(oldTick, GetTickCount)));
end;
BeginTime: Int64;
UsedTime: Int64;
begin
BeginTime := GetTickCount;
//do sth
UsedTime := GetTickCount - BeginTime;
end;UsedTime,就是你中间代码消耗的时间.GetTickCount参考MSDN,是一个CPU的计数器,单位为MS.