线程间操作无效:从不是创建控件”txtContent”的线程访问它
来源:互联网 发布:矩阵乘法公式 编辑:程序博客网 时间:2024/06/10 01:06
出现的问题:
void comm_DataReceived(object sender,SerialDataReceivedEventArgs e)
{
byte[] readBuffer = new byte[seriaReceive.ReadBufferSize];
seriaReceive.Read(readBuffer, 0, readBuffer.Length);
this.Invoke(interfaceUpdateHandle,new string[] {Encoding.Unicode.GetString(readBuffer) });
data11 = readBuffer;
UpdateTextBox(ByteArrayToHexString(data11));
}
出现的问题主要就是我们在UI线程创建的子线程操作UI控件,访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。此时系统就会报出此错误信息。
==>解决办法
void comm_DataReceived(object sender,SerialDataReceivedEventArgs e)
{
byte[] readBuffer = new byte[seriaReceive.ReadBufferSize];
seriaReceive.Read(readBuffer, 0, readBuffer.Length);
this.Invoke(interfaceUpdateHandle,new string[] {Encoding.Unicode.GetString(readBuffer) });
data11 = readBuffer;
new Thread(Check).Start();
}
public void Check()
{
lock (this)
Invoke(new MethodInvoker(delegate ()
{
UpdateTextBox(ByteArrayToHexString(data11));
}));
}
本质上就是将需要刷新主线程的代码放到子线程中,也就是用单独一个线程来进行操作。
- 线程间操作无效:从不是创建控件”txtContent”的线程访问它
- WinForm中线程问题:线程间操作无效: 从不是创建控件“...”的线程访问它
- c#线程问题:线程间操作无效:从不是创建控件 的线程访问它
- WinForm中线程问题:线程间操作无效: 从不是创建控件“...”的线程访问它
- “线程间操作无效:从不是创建控件“XX”的线程访问它”的解决方法
- 线程间操作无效: 从不是创建控件“”的线程访问它的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法!
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 线程间操作无效 从不是创建控件“___”的线程访问它”解决方法的疑惑
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法
- C# 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- spring-boot使用logback的坑
- WPF的Image控件BitmapImage以及Uri的资源占用问题
- Shell函数:Shell函数返回值、删除函数、在终端调用函数
- PHP Filter过滤器全面解析
- 将tomcat做成服务
- 线程间操作无效:从不是创建控件”txtContent”的线程访问它
- 用ionic 创建新项目
- CountDownTimer在适配器中的使用
- springMVC spring-servlet.xml配置详细
- window.history.go()方法
- C++11快餐教程(1)-通过using定义类型的别名
- swift0001
- android developer tiny share-20160912
- Linux常用操作命令