Как отобразить данные, прочитанные в обработчике событий DataReceived для последовательного порта

У меня есть следующий код, который требует, чтобы данные читались из порта, а затем отображались в текстовом поле. Я использую обработчик событий DataReceived для этой цели, но не знаю, как отображать эти данные в текстовом поле. Из разных источников я узнал, что для этого следует использовать метод Invoke, но не знаю, как его использовать. Предложения, пожалуйста...

    private void Form1_Load(object sender, EventArgs e)
    {
        //SerialPort mySerialPort = new SerialPort("COM3");
        mySerialPort.PortName = "COM3";
        mySerialPort.BaudRate = 9600;
        mySerialPort.Parity = Parity.None;
        mySerialPort.StopBits = StopBits.One;
        mySerialPort.DataBits = 8;
        mySerialPort.Handshake = Handshake.None;
        mySerialPort.DataReceived += new SerialDataReceivedEventHandler(mySerialPort_DataReceived);
        mySerialPort.Open();
    }

    private void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        SerialPort sp = (SerialPort)sender;
        string s= sp.ReadExisting();
        // next i want to display the data in s in a textbox. textbox1.text=s gives a cross thread exception
    }
    private void button1_Click(object sender, EventArgs e)
    {

        mySerialPort.WriteLine("AT+CMGL=\"ALL\"");

    }
6
задан Cdeez 21 July 2012 в 09:13
поделиться