我的代码有问题。错误是
跨线程操作无效:控件'label1'从与其创建的线程不同的线程访问
代码是
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort1.BaudRate = 9600
SerialPort1.PortName = "COM9"
Try
SerialPort1.Open()
Catch ex As Exception
End Try
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim data As String
data = SerialPort1.ReadLine()
Label1.Text = data
End Sub
End Class
我该如何解决?
答案 0 :(得分:1)
如果您需要立即进行更新(例如,当其他内容将其用于数据存储时)
Me.Invoke(Sub() Label1.Text = data)
否则,BeginInvoke,它将在下一次免费绘画事件中执行。