怎样避免程序运行时的假死机状态(200分)

  • 主题发起人 主题发起人 baiqingshi
  • 开始时间 开始时间
B

baiqingshi

Unregistered / Unconfirmed
GUEST, unregistred user!
我近日作课程设计,在程序中编写了一个大的循环语句,循环次数为500次.在循环中,计算机需每隔10秒钟从A/D端口采集数字,通过一系列计算,判断,得出结果,并从D/A端口送出计算机.每当运行程序时,计算机就像死机一样,对按钮的点击一点也不起反映,甚至关闭不了程序.该怎莫办?请给以帮助.
 
记得哪位大虾说过用Application.ProcessMessage的
 
多线程,把这个采集数据的过程放在一个单独的线程里,
“循环次数为500次.在循环中,计算机需每隔10秒钟”
你是不是用记数来判别时间间隔的?
如果是。应该考虑用精确定时的控件来做,而不要循环次数
 
从A/D端口采集数字 一次 需要多长时间?如果一次的时间长,则processmessages
不合适

隔10秒时间,你怎么等待的?等待时要 processmessages
 
Application.ProcessMessage
可以强迫系统取出当前消息队列中的消息
进行处理
 
关于精确定时
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=105694
 
》每隔10秒钟
还是使用TTimer算了!
 
如果你调用一次i/o函数都需要几秒钟才能返回,ProcessMessages 也不行,
最好用子线程
 
必须使用多线程,这种涉及到比较费时的硬件工作的程序,
必须使用多线程来解决用户界面和内部处理之间的关系
 
用WINDOWS的消息机制,WM_TIMER,不用TTIMER,多线程最好。
POSTMESSAGE,SENDMESSAGE,DTLMESSAGE都不能精确,要严格控时,只能用TTIMER,多线程是必须的。
给我加分吧,我快穷死了:-)
 
Application.ProcessMessage
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部