错误跨线程操作无效VB.NET

时间:2019-07-16 15:36:28

标签: vb.net

我的代码有问题。错误是

  

跨线程操作无效:控件'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

我该如何解决?

1 个答案:

答案 0 :(得分:1)

如果您需要立即进行更新(例如,当其他内容将其用于数据存储时)

Me.Invoke(Sub() Label1.Text = data)

否则,BeginInvoke,它将在下一次免费绘画事件中执行。

相关问题