本人现在要用轮询的方法去询问多台终端,轮询在一直进行,如果有终端应答则处理终端的要求,处理完了以后继续轮询。这样的轮询应该如何处理?是放在TIMER事件中按一定的时间去挨个问讯,还是应放在一个LOOP循环中去执行?或者要作成一个多线程的程序?
也就是说轮询这样一个过程应在那里处理比较好。
也就是说轮询这样一个过程应在那里处理比较好。
解决方案 »
- 调用一个ActiveX Dll不放到系统目录对象就无法创建?
- 急~~100分求救!!!!
- 如何控制spreadsheet中单元格内容的长度啊?
- 如何在字符串中找到第一个汉字????请教请教
- 怎样使vb6。0支持access2002???????
- 本人是VB的初学者,如何建立VB的工作目录,使建立表单文件在保存时自动对应到这个目录!
- 为什么这样查询不对????
- 请问我用aa_string=aa_string+chr(10)+chr(13),怎么无法实现换行??应该怎么写??
- 一个关于读取文本的问题!呵呵,我初学还请多多指教
- 请教一下,我一直都在用DAO,但总听大家谈论ADO,是不是ADO比DAO好?我正做一个用于检测和记录几十台控制器工作状态的程序,它要求能定时检测并记录检测的数据,当出现异常时,要求能报警.请各位就以下几方面指点一二
- 如何用程序的方法生成控件?
- vb程序中如何得到本机的网关地址?
用DoEvents的话,计算时间会增加,并且监视进程的内存增量会猛增.
但不用DoEvents的话,由于一直占有大量cpu时间,在窗体显示方面又会出问题.窗体什么反应也没有,什么操作都不相应. 考虑用户操作方面,这样也不行呀!所以一直想用多线程来解决,我的想法是:遇到有大计算量的过程或部分的时候,就新开一个线程,让它单独计算该结果,计算完结果以后返回结果给主程序,线程结束.
但是用vb使用多线程,不知道是本人能力的问题,还是vb本身做多线程有先天不足的地方(听csdn一些大侠讲的).唉! 还望有高手来指点指点呀!再次 up
timer比较好,程序简单,也比较稳定。
我记得好象activex exe来解决多线程的问题时,VB不能有与用户交互的界面,但我这个有。
大家看看我这样做行吗?
1。从COM口先发一次数据出去,如果终端有回应则在MScomm1的ONCOMM事件中去发下一次,也就是在OnComm事件中去轮询。
2。如果在规定的时间内终端无回应,则在TIMER事件中去发下一次,如果有回应则从第一种继续,如果还没有则第二种继续。
这样将轮询放在事件中去处理,就不会造成死机了吧,不知这样做能不能解决。