VB 2008 - Timer startet nicht nach serial receiving

OP #1336191
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
Gast #1336365
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
Gast #1336718
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren