线程间操作无效: 从不是创建控件的线程访问它的两种方法
来源:互联网 发布:2017lol国服mac版本 编辑:程序博客网 时间:2024/06/16 01:40
今天遇到这个问题,把解决的方法总结出来。
在ui线程创建的子线程操作ui控件时,系统提示错误详细信息为:
线程间操作无效: 从不是创建控件“XXX”的线程访问它。
Windows 窗体程序。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和锁死。确保以线程安全方式访问控件非常重要。
以下是解决办法:
1、把CheckForIllegalCrossThreadCalls设置为false
一般会较少的采用此方法,容易造成锁死问题
2、利用委托
private delegate void myDelegate(string str);//声明委托private Thread thread;
//调用位置,此处使用定时器调用,TimerElapsed为定时器调用方法的名称private void TimerElapsed(object sender, System.Timers.ElapsedEventArgs e) { thread = new Thread(new ThreadStart(ThreadProcSafe)); thread.Start(); }
private void ThreadProcSafe() { setRich("要调用的数据"); }
private void setRich(string str) { if (this.lbLog.InvokeRequired) { myDelegate md = new myDelegate(setRich); this.Invoke(md, new object[] { str }); } else this.txtName.Text=str; }
阅读全文
1 0
- 线程间操作无效: 从不是创建控件的线程访问它的两种方法
- 线程间操作无效: 从不是创建控件的线程访问它的三种方法
- 线程间操作无效:从不是创建控件的线程访问它的三种方法
- 线程间操作无效: 从不是创建控件的线程访问它的三种解决方法
- WinForm中线程问题:线程间操作无效: 从不是创建控件“...”的线程访问它
- c#线程问题:线程间操作无效:从不是创建控件 的线程访问它
- WinForm中线程问题:线程间操作无效: 从不是创建控件“...”的线程访问它
- “线程间操作无效:从不是创建控件“XX”的线程访问它”的解决方法
- 线程间操作无效: 从不是创建控件“”的线程访问它的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法!
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 线程间操作无效 从不是创建控件“___”的线程访问它”解决方法的疑惑
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法
- C# 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- python核心高级学习总结3-------python实现进程的三种方式及其区别
- intellij IDEA开发node.js
- Java 代码性能优化
- 如何安装MySQLdb
- WEB服务器与应用服务器的区别
- 线程间操作无效: 从不是创建控件的线程访问它的两种方法
- Android 开发进阶: 自定义 View 1-2 Paint 详解
- hyperledger fabric框架说明
- P、I、D参数分析及倒立摆心得
- 阿里云:游戏行业DDoS态势报告(2017年上半年)
- EmojiconTextview带表情的输入框
- Smallest Difference (全排列 + 暴力?)
- win10任务栏图标两个以上不显示缩略图的解决办法
- Flux框架流程及搭建