Nieprawidłowa operacja między wątkami: do formantu 'textBox1'

0

Mam program, który wysyła ramkę zapytania do sterownika i po odebraniu danych chcę je wyświetlić "textBox".

private void timer1_Tick(object sender, EventArgs e)
        {
             
           port.Write(new byte[] { 0x01, 0x17, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0x9B }, 0, 13);
           port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
           

            
        }

public void DataReceivedHandler(
                               object sender,
                               SerialDataReceivedEventArgs e)
        {
             
            SerialPort sp = (SerialPort)sender;
            data = sp.ReadExisting();
            
            dane = ASCIIEncoding.ASCII.GetBytes(data);
            
           
           labelTest.Text = ("Odebrano dane");
           textBox1.Text = Convert.ToString(dane[1]);
           
        }
 

Gdy próbuję wyświetlić odebrane dane w textBox dostaję komunikat:

"Additional information: Nieprawidłowa operacja między wątkami: do formantu 'textBox1' uzyskiwany jest dostęp z wątku innego niż wątek, w którym został utworzony."
Proszę o pomoc jak to rozwiązać.

0

Było 1000000 razy.

0

http://msdn.microsoft.com/en-us/library/ms171728.aspx

Tu by się jakiś autoresponder przydał.

3

Dla osób, które pewnie kiedyś tu trafią to poradziłem sobie takim sposobem.

 
textBox1.Invoke(new Action(delegate()
                {
                    textBox1.AppendText(Convert.ToString(dane[1]));
                }));

Polecam zajrzeć tutaj: Klasa Thread

1 użytkowników online, w tym zalogowanych: 0, gości: 1