我的程序通过COM端口从外部设备接收数据。
我通过以下方式初始化COM端口连接:
Public Sub InitializeReader()
AddHandler comPort.DataReceived, AddressOf DataReceivedHandler
comPort.Open()
End Sub
我通过以下方式从设备/端口接收数据:
Public Sub DataReceivedHandler(sender As Object, e As SerialDataReceivedEventArgs)
IncomingData = comPort.ReadLine()
End Sub
我想在读取芯片后打开一个Windows窗体。但是,当我使用DataReceivedHandler Sub这样做时,我的程序停止响应。
所以,类似这样会使程序崩溃:
Public Sub DataReceivedHandler(sender AS Object, e As SerialDataReceivedEventArgs)
IncomingData = comPort.ReadLine()
If FormOpen = False Then
FormOpen = True
NewForm.Visible = True
End If
End Sub
如果我改为将NewForm.Visible = True
更改为NewForm.ShowDialog()
,则可以正常使用。但是,我需要用户与新表单进行交互的时间超过一个事件。
我已经确认“ NewForm”可以正常工作。没有什么问题。如果我在程序的其他位置(但在DataReceivedHandler子菜单中为 not )打开表单,则效果很好。
有人知道我为什么会遇到这个问题吗?