DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: wjy13061029975
今日帖子: 2
在线用户: 2
导航: 论坛 -> 未知:1 斑竹:  
作者:
女 青云 ▲△△△△ -
2003/8/6 21:24:07
标题:
着急!!,如何编写一个时间延时函数? 浏览:2387
加入我的收藏
楼主: 着急!!,如何编写一个时间延时函数?
  
我现在编写一个串口通讯软件,发送一个指令后要延时几百豪秒后 再发送接受指令。

比如 : send('01 01 00 02'); //发送;
        TimeDelay(500);      //延时500毫秒
        str:=recieve;        //接收

下面是我编写的延时函数

Procedure TimeDelay(DT:DWORD);
var
 TT:DWORD;
begin
  
  TT:=GetTickCount();
   
  while GetTickCount()-TT<DT do
   Application.ProcessMessages;  
end;

这个函数我用了半年多,一直不觉得有什么问题。
但是今天我发现了一个很严重的问题。

当运行 TimeDelay这个函数的时候。我打看任务管理器,发现CPU的利用率为100%,我感到很惊讶。
想不到用这个函数耗尽了cpu的资源。

于是我想重写这个函数。其实用Timer控件可以控制时间间隔,但是不行,用起来很不方便。

有谁能帮我重写这个TimeDelay函数,在运行的时候不消耗多少cpu资源???
我估计好像要用到消息处理机制。
  各位大哥帮帮忙,小弟的网站 www.yzsoftware.com  ,上面有我个人用的delphi做的几个软件,如对其中感兴趣的,可以来信索取源码。
my e-mail:yzdzc@163.com


----------------------------------------------
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/8/6 21:45:19
1楼: 你用 sleep(500) 试试看。
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 boy (阿門) ★☆☆☆☆ -
盒子活跃会员
2003/8/7 10:08:26
3楼: 效果不错
加上 esc 中止 效果更不错

----------------------------------------------
Delphi開發◆伺服器架設◆免安裝APACHE,PHP,CGI Perl, MYSQL ★
作者:
男 the_Fm (Fm) ★☆☆☆☆ -
盒子活跃会员
2003/8/7 10:18:11
4楼: 我想将主程序放到线程里,直接调用sleep,主界面不会死。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS