永发信息网

请教关于VB.NET DOEVENTS的问题!

答案:2  悬赏:20  手机版
解决时间 2021-01-29 09:07
  • 提问者网友:轮囘Li巡影
  • 2021-01-28 23:05
上下位机通讯中利用VB编写上位机程序,通讯协议为上位机向下位机发地址,下位机有回应后继续执行,用的控件是MSCOMM控件,由于上位机要等待下位机,所以采用等待查询的方式接受数据,其中用到了DOEVENTS,之前在VB6用完全没有问题,现在移植到VB.NET,发现运行到DOEVENTS就不往下执行了,不知什么原因,求教!
这是接收子程序:
Private Sub s_command(ByRef address As Byte)
AxMSComm1.InBufferCount = 0
Do
s_byte(0) = address
AxMSComm1.Output = s_byte
Do
System.Windows.Forms.Application.DoEvents()
Loop Until AxMSComm1.InBufferCount > 0
combyte = AxMSComm1.Input
AxMSComm1.InBufferCount = 0
For j = LBound(combyte) To UBound(combyte)
strbuff = Hex(combyte(j))
Next j
command = Val(strbuff)
strbuff = 0
Loop While command <> address
End Sub
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-01-28 23:36
Do
System.Windows.Forms.Application.DoEvents()
Loop Until AxMSComm1.InBufferCount > 0

死循环。
全部回答
  • 1楼网友:洒脱疯子
  • 2021-01-29 00:20
不明白第一个你为啥要声明个变量 doevents说明:doevents 函数会返回一个 integer,以代表 visual basic 独立版本中打开的窗体数目,例如,visual basic,专业版,在其它的应用程序中,doevents 返回 0。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯