Forum: PC-Programmierung WPF Com1 Event


von Alois (Gast)


Lesenswert?

Hallo Forum,

ich möchte mir eine kleine Testsoftware schreiben wo ich über ein Label 
ausgebe was über die RS232 rein kommt.

Ich baue mir den String im Event zusammen und wenn er fertig ist wird 
ein Bit "input_ok" gesetzt.
In einem Timer wird das Bit abgefragt und wenn es True ist dann der 
Parser gestartet.

Nun meine Frage : Wie kann ich das ohne Timer lösen, sobald ich die 
Zuweisung meines Strings ins Label mach wird Label1 nie beschrieben??
(im Timer funktioniert es)

Ich finde die Timer lösung blöd da die Software immer frägt ob der 
String fertig ist....


//Serial INT
        private void serialPort1_dataReceived(object sender, EventArgs 
e)
        {

            byte[] buffer = new byte[this.serialport_1.BytesToRead];

            try
            {
                this.serialport_1.Read(buffer, 0, 
this.serialport_1.BytesToRead);


                for (int i = 0; i < buffer.Length; i++)
                {
                    if (buffer[i] == 0x0D) input_ok = true;
                    tempstring += ((char)buffer[i]);  // tempstrin 
globale Variable
                }
            }
            catch { buffer = null; }

            //if (buffer.Length > 64) buffer = null;
        }

von Ellen R. (ellenr)


Lesenswert?

Hallo Alois,

eine Invoke Methode auf den UI thread ausführen.

Ich habe hier ein sample, wo das genau beschreiben wird. Ich hoffe es 
wird Dir keine grossen Schwierigkeiten bereiten VB.NET nach C# zu 
konvertieren.

http://code.msdn.microsoft.com/SerialPort-Sample-in-VBNET-fb040fb2

Gruss Ellen

C# VB.NET konverter
http://www.developerfusion.com/tools/convert/csharp-to-vb/

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.