Forum: PC-Programmierung COM, DataReceived-Event und .Net


von A.Bu. (Gast)


Lesenswert?

-  Visual Basic (Sharp Develop 2.0)
-  .NET Framework 2.0

Forlgender Code soll Binäre Daten über die COM-Schnitstelle lesen:

Private Dim WithEvents COM_Port As New System.IO.Ports.SerialPort

…
(Connect)

AddHandler Com_Port.DataReceived, AddressOf COM_Port_DataReceived
…

Private Sub COM_Port_DataReceived(sender As Object, e As 
System.IO.Ports.SerialDataReceivedEventArgs)

  dim x as Integer

  Do While COM_Port.BytesToRead > 0
    x = me.COM_Port.ReadByte() 'Dummy Read
  Loop

End Sub


Nach 2-3 Sekunden tritt plötzlich bei me.COM_Port.ReadByte() dieser 
Fehler auf:

Ausnahme System.IO.IOException wurde im ausgeführten Programm ausgelöst:
Der E/A-Vorgang wurde wegen eines Threadendes oder einer 
Anwendungsanforderung abgebrochen.
C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\Sy 
stem.Drawing.dll

WinIOError()
BeginReadCore()
ReadByte()
ReadByte()
ReadByte()
COM_Port_DataReceived() - C:\Eigene Dateien\SharpDevelop 
Projects\HC12_Debugger\BDM12.vb:227,5
CatchReceivedEvents()
CallReceiveEvents()
WaitCallback_Context()
runTryCode()
RunInternal()
Run()
PerformWaitCallback()

Was kann das sein??

Grüße A.Bu.

von Wolfgang B. (Gast)


Lesenswert?

Hallo.

Ich hab ein ähnliches Problem.

Nach einer gewissen Zeit ca. 2 Sekunden meldet .ReadByte einen Fehler.

Folgende Exception:
"Der E/A-Vorgang wurde wegen eines Threadendes oder einer
Anwendungsanforderung abgebrochen."

Hat jemand schon mal das gleiche Problem gehat? (Gibts ne Lösung?)

C# sharp develop

1
void Button1Click(object sender, EventArgs e)
2
    {
3
      serialPort1.Open();
4
      while(true)
5
      {
6
        Application.DoEvents();
7
        try{
8
          serialPort1.ReadByte();}
9
        catch()
10
        {}
11
              }
12
    }

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.