错误:跨线程操作无效
本文关键字:操作 无效 线程 错误 | 更新日期: 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())
更多信息:此处