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
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
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.