SerialPort DataReceivedHandler事件与BytesToRead不匹配

时间:2013-03-05 17:59:56

标签: .net vb.net serial-port

使用以下代码时:

    Private Sub DataReceivedHandler(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)

    Dim sp As SerialPort = CType(sender, SerialPort)

    Debug.WriteLine("DataReceivedHandler() - Data Received! number of bytes=" & sp.BytesToRead)
    Dim indata As String = sp.ReadExisting()

    Debug.WriteLine("DataReceivedHandler() - indata=" & TTSHelperFunctions.StringToHex(indata))

End Sub

什么可能导致sp.BytesToRead表示比在调试输出中显示indata变量时更少的字节数?

1 个答案:

答案 0 :(得分:3)

Debug.WriteLine()非常慢。串行端口在执行时将继续接收字节。因此,事后获得更多字节是一种明显的可能性。