for f_i:=0 to s_total do
begin
for rd_i:=0 to test.Count-1 do
begin
readdisk(test.strings[rd_i],rd_i,f_i);
Sleep(0);
end;
diskXor(test.Count);
WriteFile(test.Count);
Application.ProcessMessages; end;以上是我的循环,循环的最大值可以是2000000000的,这样的话运行CPU100%,加SLEEP(0)还是一样,加SLEEP(1)可以但是速度变慢了,请问有没有好的解决或者类似的好的方法????谢谢
begin
for rd_i:=0 to test.Count-1 do
begin
readdisk(test.strings[rd_i],rd_i,f_i);
Sleep(0);
end;
diskXor(test.Count);
WriteFile(test.Count);
Application.ProcessMessages; end;以上是我的循环,循环的最大值可以是2000000000的,这样的话运行CPU100%,加SLEEP(0)还是一样,加SLEEP(1)可以但是速度变慢了,请问有没有好的解决或者类似的好的方法????谢谢
解决方案 »
- SQL语句问题。完了直接请吃饭,给分
- 求 delphi webserivice 调用例子
- image控件是否支持.jpeg,jpe,rle,dib格式的图片
- 怎样给指定的一条记录设置颜色?
- 请问大虾:如何动态修改SQL SERVER 表结构!
- 请您帮忙,怎样实现类似CAD或protel似的作图方式,可以画完后再编辑那些线、圆……等,谢谢.
- 动态创建的label的删除问题
- DELPHI怎样才能生成可执行文件呢
- 在线等,达人给个帮助.如何手动取消dbgriedh自动添加的行.
- 如用一TADOQuery连接一些动态表,我要进行新增、修改等操作,该怎么做?
- sql查询返回多个结果如何获得?
- dbgrid 如果让下一个单元格自动获得焦点?
提高效率的方法:
1.将其放入线程中
2.去掉sleep和Application.ProcessMessages
3.减少I/O操作次数,即优化WriteFile(test.Count); 过程