Forum: PC-Programmierung VB 2008 - Timer startet nicht nach serial receiving


von Franz-juergen E. (franz-juergen)


Lesenswert?

Hallo Zusammen,

nach einem Empfang serieller Daten möchte ich einen Timer starten:

  Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, 
ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles 
SerialPort1.DataReceived
        RecBuffer = SerialPort1.ReadExisting()
        Timer2.Interval = 10
        Timer2.Enabled = True
    End Sub


Ich würde erwarten, dass nach 10 ms die folgende Prozedur anspringt, was 
sie aber nicht macht; das System ist schlicht bereit für die nächste 
Aufgabe; z.B. erneut Daten zu empfangen.

    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Timer2.Tick
        Timer2.Enabled = False
        Debug.Print("t2")
    End Sub

Hat jemand einen Vorschlag für eine Problemlösung ?
Mit Dank
Franz-Juergen

von Ralf (Gast)


Lesenswert?

seufZ Ich bin von der Menge der Informationen erschlagen... :)

Welcher Timer? System.Timers? System.WindowsForms?

Ich tippe mal drauf, dass mit Timer.Enabled nur festgelegt wird, dass 
die Ticks ein Event auslösen, starten musst du ihn mit Timer.Start().

Ralf

von thomas (Gast)


Lesenswert?

das SerialPort1_DataReceived Event kommt in einem anderen Thread.

Innerhalb dieses Events kannst du z.B. deine empfangenen Daten nicht in 
eine Textbox schreiben.

Ich vermute mal, das dein Timer.Tick Event dann auch in einem anderen 
Thread läuft.
Übrigens, 10ms für einen Windows Timer sind schon recht kurz, die hält 
er nicht stabil.

mfg
Thomas

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.