【发布时间】:2015-02-17 17:42:03
【问题描述】:
我有一个带有一些选项卡的表单,在 Visual C# 中
此表单正在使用回调“serialPort1_DataReceived”读取串行端口
在其中一个选项卡中有一个名为 textBox_CN2 的文本框
当串行正在运行并且我单击此选项卡时,当表单尝试更改文本框中的文本时出现错误
跨线程操作无效:控件“textBox_CN2”从创建它的线程以外的线程访问。
这是代码的简化版本:
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
buffer_in[count] = (char)serialPort1.ReadByte();
count++;
if (count > 10 && buffer_in[count - 1] == '#' && buffer_in[count - 2] == '@')
{
this.textBox_CN2.Text = string.Format("{0:F2}", buffer_in[2]);
}
}
谢谢
【问题讨论】:
标签: multithreading visual-c#-express-2010