Hallo Zusammen Ich habe ein Programm für die Protokollierung von seriellen Daten geschrieben und habe das Problem wenn ich die Protokollierung mit einem Button starte kann ich es sehr schwer wieder anhalten. Beim Starten wird eine bool auf true gesetzt und mit neuerlichem Druck auf den Button wird die Variable wieder false, aber da die serielle Schnittstelle ständig Daten schickt funktioniert das kaum. Beim VB 6.0 hat es einen Befehl gegeben der in diese Routine geschrieben wurde und der hat dann andere Aktionen zugelassen. Gibt es bei C# auch so etwas. Bitte um eure Hilfe. Danke. Lg. Johann K.
verstehe das Problem nicht. Frage doch einfach die Variabel ab und beendet dann das lese der Daten. Oder schließen einfach den Com-port.
Application.DoEvents Aber du solltest wirklich die Verarbeitung der seriellen Schnittstelle parallel in einem Thread machen.
1. Setze die boolsche Variable volatile. 2. Falls es eine while-Warteschleife gibt, z.B. while(!serialDataEnabled); mach aus dem Semikolon eine Wartefunktion z.B. Thread.Wait(20); 2. Falls das Programm an irgendeiner Stelle abstürzt setzt du da einfach ein try{}catch{} hin. Ist vielleicht nicht die optimale Lösung aber ich konnte schon oft solche Probleme mit einem try und catch Block ganz einfach lösen.
Moin, mach es lieber richtig und verarbeite die Daten asynchron. Also Port erzeugen, eine Callback Methode anmelden und dort die Daten verarbeiten. hier gibts Beispielcode. https://msdn.microsoft.com/de-de/library/system.io.ports.serialport.datareceived%28v=vs.110%29.aspx In deinem button_click kannst du dann einfach den Port zu machen und die Verarbeitung hört auf.
Hallo Zusammen Danke für eure Antworten. Im ersten Schritt reicht mir Application.DoEvents vollkommen weil ich das Programm nur für die Entwicklung einer Schnittstelle zu meiner Modellbahn (XpressNet) benötige um das Protokoll zu überwachen. Danke nochmals. Lg. Johann K.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.