C# WinForm 线程间操作无效: 从不是创建控件的线程访问它的解决办法
.net2后是不能跨线程访问控件的。,窗体上的控件是当前线程创建的,当用户异步执行一个方法:在该方法中给窗体上的控件赋值,记住:当执行一个异步委托的时候,其实
就是开了一个线程去执行那个方法,这样就会报错:线程间操作无效: 从不是创建控件“某某某”的线程访问它。
1.在窗口线程中设置CheckForIllegalCrossThreadCalls = false
public Form1()
{InitializeComponent();Control.CheckForIllegalCrossThreadCalls = false;
}
2. 利用委托
private void button1_Click(object sender, EventArgs e){new Action(show).BeginInvoke(null, null);}void show(){//异步外的方法。这样窗体不会假死while (true){Thread.Sleep(2000);Action ac = new Action(showText);this.Invoke(ac); //在同步方法里面实现更新窗体上的数据}}/// <summary>/// 更新数据/// </summary>void showText(){richTextBox1.AppendText("更新\n");}
大家可以参考下MSDN:
如何:对 Windows 窗体控件进行线程安全调用
http://msdn.microsoft.com/zh-cn/visualc/ms171728(VS.85,printer).aspx
转载:https://www.cnblogs.com/nsky/p/4436309.html
C# WinForm 线程间操作无效: 从不是创建控件的线程访问它的解决办法相关推荐
- 黄聪:BackGroundWorker解决“线程间操作无效: 从不是创建控件的线程访问它” (C# VS2008)...
在编程中经常会遇到在一个按钮中执行复杂操作,并将复杂操作最后返回的值加入一个ListView或ComboBox中候选.这个时候程序会卡,当程序员将这些卡代码放进线程(Thread)中后发现当对控件操作 ...
- 线程间操作无效: 从不是创建控件的线程访问它
转自原文 线程间操作无效: 从不是创建控件的线程访问它. using System; using System.Collections.Generic; using System.ComponentM ...
- 【转】“线程间操作无效: 从不是创建控件的线程访问它”
经典解决"线程间操作无效: 从不是创建控件的线程访问它" 在编程中经常会遇到在一个按钮中执行复杂操作,并将复杂操作最后返回的值加入一个ListView或ComboBox中候选.这个 ...
- 线程间操作无效: 从不是创建控件的线程访问它。
private void button1_Click(object sender, EventArgs e){//报错:从不是创建控件的线程访问它Thread t = new Thread(() =& ...
- c#报错 :System . Invalid Operation Exception:“线程间操作无效: 从不是创建控件的线程访问它
一.问题来源 跨线程操作时会报错:System.InvalidOperationException:"线程间操作无效: 从不是创建控件的线程访问它. 二.问题代码 using System; ...
- 线程间操作无效,从不是创建控件的线程访问它。
最近在开发项目时用到了操作线程的问题,在新线程中写入了操作控件的代码如: this.btnToolUpload.Enabled = true; 但是在线程执行过程中,当执行到这段代码时提示:" ...
- c# 线程间操作无效: 从不是创建控件“”的线程访问它,用托管来解决
如果代码是在VS2003中的话应该不会抛出这个异常,只有在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常.这是微软为了保证线程安全以及提高代码的 ...
- C#线程间操作无效: 从不是创建控件 XX 的线程访问它
转自:http://www.arasplm.net/index.php/zh/community/myblog/c-xx-.html 前些天做的要使用到线程的项目,现在和大家分享一下感受! 以下面小列 ...
- System.InvalidOperationException:“线程间操作无效: 从不是创建控件“txtPortName02”的线程访问它。”...
"System.InvalidOperationException"类型的未经处理的异常在 System.Windows.Forms.dll 中发生 其他信息: 线程间操作无效: ...
最新文章
- PAT 1074 Reversing Linked List
- 烦人,周报要不要取消?| 每日趣闻
- cannot import name 'get_all_providers'
- 使用nio多线程下载网络文件实例
- 【学校作业】学生数据打印
- 【转】SQLServer 行列互换
- 云南数据中心机房资源介绍、IDC资源分布,机房数据中心建设解决方案
- 易接SDK ios9以上无法弹出充值界面的一种情况
- Cisco的路由器、交换机设置 Console 密码和 Enable 密码
- 跨境电商独立站海外引流渠道:Quora运营技巧
- 使用Git管理多媒体文件
- 市占率第一,是vivo的起点还是终点?
- Python 1-10 字符串操作
- QuickBooks 2018 For Dummies 免积分下载
- 明天是程序员节,程序员的过节姿势大全抢先看
- 计算机毕业设计系列基于SSM的网上书城系统
- 八问程序员-----总有一个适合你
- 利用Lambda表达式对 对象数组的排序
- 星舰首飞爆炸 | SpaceX的3D打印技术应用
- 什么样的音乐平台能够激发用户付费,Spotify告诉你答案
热门文章
- 电脑版微信累积文件缓存清理小方法
- 程序员为何痴迷深夜写代码?
- 《你不知道的JavaScript(上卷)》——[美]凯尔辛普森
- 发挥GPU强大动力的CG语言
- 《Optimizing Java》读书笔记中
- 基于金融业顾客生命周期的商业分析
- 涉嫌侵犯FinFET专利,韩国科技院把三星、高通及GF告上法庭
- #文本编辑器#卸载Notepad++?除了Notepad++,还有啥能代替的吗?有,必须有!!!
- 什么是 MATLAB(矩阵实验室)?工作、功能和应用
- TypeError: e[h] is not a function