VB 3个mscomm3个串口时很卡 麻烦高手帮忙,两个串口时不卡,三个就很卡了,我用timer通过3个mscomm收发3个串口数据,但是有时程序会死机资源管理器显示也没有响应,而且用资源管理器也关不掉 有时不死机但是timer会变得很慢很慢,真的好烦哦,请高手帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢二位:wellescai:我接收数据时通过3个串口on_comm事件接收的,而发送数据是在timer里面将三个数据顺序发送到三个串口的veron_04:我的下位机一共有三个,发送时是用timer每隔0.3秒将三个下位机的查询命令通过3个mscomm顺序发送出去,接收时是通过3个mscomm on_comm事件恩,接收的3个串口内容分别是255字节,21字节,0字节(这个端口只发送不接受)希望能有高手相助 增加Timer计时间隔或者增加波特率. zdingyun:你觉得是什么问题呢,这个比较简单的办法我试过了 0.3S轮询256字节的COM口负担过重.在9600波特率下,理论能传递960字节.你1S约需处理800多字节 我觉得你最好增加一个timer来处理收到的数据,这样vb(应该是vb6吧)才好做到“异步”而不出现假死现象(因为vb不太支持多线程),如果你在oncomm事件里处理数据的话,再加上触发门限是一个字符的话,就有可能出现假死现象,特别是波特率低时,大概1~3字符触发一次事件,想想看,接收255字节,要运行啦多少遍oncomm事件处理程序呀,恐怖的时间消耗,如果你下位机响应格式是255字节的话,最好255字节一次处理,触发门限设置为255,如果格式任意长度字节的话,这样用一个timer来实现最少的处理次数! carefire:我也在试着把那个rtherold设为255,但是还没有试一试,今天准备试一下Zdingyun:我的波特率是38400,还有个问题是两个com口在255字节和21字节的时候都没有问题,但是一旦加上另一个0字节的com口时就卡(这个com口只发不收) 寡人已经解决了,确实是单线程问题,一定要用active exe才行,希望后来者别走那么多弯路 关于vb程序向excel2010插入图片问题! ArcGis中的UIControl 如何实现模糊查询?菜鸟求助! 数据类型转换 DataGrid中记录有没有单击事件(B/S模式) crystalreport金额大写转换问题 vb6的程序在.net下可以继续使用吗?? 关于灰掉窗体X的问题! 如何禁用/启用任务栏上的快速启动栏? 如何把显示在form上的数据保存成DOC格式? 给位牛人多指教 曲线显示问题 着急 vba
希望能有高手相助
0.3S轮询256字节的COM口负担过重.在9600波特率下,理论能传递960字节.你1S约需处理800多字节
我觉得你最好增加一个timer来处理收到的数据,这样vb(应该是vb6吧)才好做到“异步”而不出现假死现象(因为vb不太支持多线程),如果你在oncomm事件里处理数据的话,再加上触发门限是一个字符的话,就有可能出现假死现象,特别是波特率低时,大概1~3字符触发一次事件,想想看,接收255字节,要运行啦多少遍oncomm事件处理程序呀,恐怖的时间消耗,如果你下位机响应格式是255字节的话,最好255字节一次处理,触发门限设置为255,如果格式任意长度字节的话,这样用一个timer来实现最少的处理次数!
Zdingyun:我的波特率是38400,还有个问题是两个com口在255字节和21字节的时候都没有问题,但是一旦加上另一个0字节的com口时就卡(这个com口只发不收)