【问题解决】线程间操作无效:从不是创建控件“textBox1”的线程访问它
2015-11-02 21:46
459 查看
背景
通过一个辅助线程计算出的一个值赋给textBox1.text;解决办法
1.直接在窗体的构造函数中添加:System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
此时禁用了所有的控件合法性检查。
2.通过代理来解决(msdn)
private delegate void SetTextCallback(string text); //在给textBox1.text赋值的地方调用以下方法即可 private void SetText(string text) { // InvokeRequired需要比较调用线程ID和创建线程ID // 如果它们不相同则返回true if (this.textBox1.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); this.Invoke(d, new object[] { text }); } else { this.textBox1.Text = text; } }
这里主要用到了.NET中的 delegate。
关于delegate的详述,请参阅: 谈C#中的Delegate
【原文参考】线程间操作无效: 从不是创建控件“textBox1”的线程访问它
相关文章推荐
- U3D 背景音效和事件触发音效
- 阅读有关软件工程与计算机科学区别的文章,谈谈你的看法。
- bzoj1620【Usaco2008 Nov】Time Management 时间管理
- 玩转树莓派--网卡配置
- 简单逆向
- 物化视图的刷新(转载)
- 构造方法
- LeetCode Count Complete Tree Nodes 二叉树
- 不同的场景使用不同的泛型通配符
- jenkins git插件安装
- redis主从设置
- hdu2844Coins【多重背包】
- HDU 5538 House Building(2015ACM/ICPC亚洲区长春&&几何体表面积)
- ui控件
- ActiveMQ源码架构解析第一节
- 適合 Intel® 架構平台的即時端對端 H.265/HEVC 解決方案
- C919下线,梦想起航
- Java运行linux和windows系统命令
- bzoj1036: [ZJOI2008]树的统计Count 树链剖分+线段树
- Spark(Hive) SQL中UDF的使用(Python)