关于delphi7死机问题

jude_happy 2009-09-02 01:59:46
我编了一个循环发送和接收判断的程序,用于串口通信,
并设置了一个定时20秒的程序,如果20s内不满足条件1 则自动退出这个循环。

开定时器;
repeat
//这个地方为什么一定要加上showmessage('');
发送程序
sleep(500);
接收程序;
判断程序;//判断内符合收敛则置条件1标志

until 条件1;

问题出在一定要在repeat后面加一个showmessage,否则程序必然死机。请问这是什么原因啊?
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jude_happy 2009-09-02
  • 打赏
  • 举报
回复
谢谢各位
starluck 2009-09-02
  • 打赏
  • 举报
回复
通宵這樣


vCount := GetTickCount;
while (vCount + 5000 > getTickCount) do begin
...
Application.processMessage;
end;


de410 2009-09-02
  • 打赏
  • 举报
回复
Application.ProcessMessages;
使用意义:
在大量的循环运算,又不想使用多线程时,为了计算机在运算时能响应用户的操作,又不破坏指令的执行.



repeat
Application.ProcessMessages;
发送程序
sleep(500);
接收程序;
判断程序;//判断内符合收敛则置条件1标志


jude_happy 2009-09-02
  • 打赏
  • 举报
回复
Application.ProcessMessages;

请教这个怎么使用呢?O(∩_∩)O~
Voidest 2009-09-02
  • 打赏
  • 举报
回复
是的,这样可能死机,因为主线程没有得到控制权,所以你的接收函数收不到东西。建议增加Application.ProcessMessages;
jude_happy 2009-09-02
  • 打赏
  • 举报
回复
再问一个很傻的问题:
showmessage只要出现,程序是不是会暂停,直到按下确定键?

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧