C# nur Lesen Serielle Schnittstelle, wenn Daten kommt

Ich möchte Lesen, meine seriellen port, aber nur, wenn die Daten kommt(ich will nicht polling).

Dies ist, wie ich es mache.

                Schnittstelle = new SerialPort("COM3");
                Schnittstelle.BaudRate = 115200;
                Schnittstelle.DataBits = 8;
                Schnittstelle.StopBits = StopBits.Two;
             ....

Und dann starte ich einen thread

             beginn = new Thread(readCom);
             beginn.Start();

und in meinem readCom bin ich beim Lesen ständig (polling 🙁 )

private void readCom()
    {

        try
        {
            while (Schnittstelle.IsOpen)
            {

                Dispatcher.BeginInvoke(new Action(() =>
                {

                    ComWindow.txtbCom.Text = ComWindow.txtbCom.Text + Environment.NewLine + Schnittstelle.ReadExisting();
                    ComWindow.txtbCom.ScrollToEnd();
                }));

                beginn.Join(10);

            }
        }
        catch (ThreadAbortException) 
        {

        }

        catch (Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

Ich möchte yout Lesen, wenn ein Interrupt kommt. Aber wie kann ich das tun ?

InformationsquelleAutor user2261524 | 2013-04-25
Schreibe einen Kommentar