小编Fat*_*hra的帖子

跨线程操作无效:控制'textBox1'从其创建的线程以外的线程访问

我想从微控制器发送温度值,使用UART到C#接口和显示温度开启Label.Content.这是我的微控制器代码:

while(1) {
   key_scan(); // get value of temp
   if (Usart_Data_Ready())
   {
      while(temperature[i]!=0)
      {
         if(temperature[i]!=' ')
         {
            Usart_Write(temperature[i]);
            Delay_ms(1000);
         }
         i = i + 1;
      }
      i =0;
      Delay_ms(2000);
   }
}
Run Code Online (Sandbox Code Playgroud)

我的C#代码是:

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
   txt += serialPort1.ReadExisting().ToString();
   textBox1.Text = txt.ToString();
}
Run Code Online (Sandbox Code Playgroud)

但是异常出现了" 跨线程操作无效:控制'textBox1'从一个线程访问,而不是在它创建的线程上 "请告诉我如何从我的微控制器获取温度字符串并删除此错误!

c# multithreading invoke uart

169
推荐指数
6
解决办法
33万
查看次数

标签 统计

c# ×1

invoke ×1

multithreading ×1

uart ×1