错误:跨线程操作无效

本文关键字:操作 无效 线程 错误 | 更新日期: 2023-09-27 18:19:28

下面的代码给了我一个错误,"跨线程操作无效:控件'textBox30'是从创建它的线程以外的线程访问的。"

private void serialPort1_DataReceived(object sender,S ystem.IO.Ports.SerialDataReceivedEventArgs e)
{
    int bytes = serialPort1.BytesToRead;
    byte[] byte_buffer = new byte[bytes];
    byte[] ar = new byte[20];
    byte[] ssd = new byte[4];
    byte[] ctrl = new byte[20];
    string pp = "";
    string ll = "";
    serialPort1.Read(byte_buffer, 0, bytes);
    int index = byte_buffer[0];
    array[index] = TestSerializer.MarshalToStructureArray(byte_buffer,bytes);
    textBox30.Text = index.ToString();
    serialPort1.Write("N");
    Thread.Sleep(1000);
}

有人能提出解决方案吗?

错误:跨线程操作无效

这似乎是InvokeRequired问题。

代替:

textBox30.Text = index.ToString();

尝试:

textBox30.Invoke(s => textBox30.Text = s, index.ToString())

更多信息:此处