C#多线程操作界面控件的解决方案
来源:互联网 发布:死或生5mac 编辑:程序博客网 时间:2024/05/22 19:26
在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证线程安全以及提高代码的效率所做的改进,但是也给大家带来很多不便。
其实解决这个问题有两种方法:
一,是通过设置
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
在你的程序初始化的时候设置了这个属性,而且在你的控件中使用的都是微软Framework类库中的控件的话,系统就不会再抛出你上面所说的这个错误了。
二,就是委托了,个人建议用这种方法
首先在WinForm窗体中拖入ListBox控件,然后参照以下代码:
Thread t1;//声明一个全局线程 private void Form1_Load(object sender, EventArgs e) { t1 = new Thread(new ThreadStart(BackgroundProcess)); t1.Start(); //开始 } delegate void aa(); private void BackgroundProcess() { // 将委托实例化 aa a = delegate() { for (int i = 0; i < 50; i++) { listBox1.Items.Add("Iterations: " + i.ToString()); Thread.Sleep(300); listBox1.Refresh(); } }; listBox1.Invoke(a); }
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案
- C#多线程操作界面控件的解决方案 [转]
- 多线程操作界面控件的解决方案
- C#多线程操作界面控件
- Winform控件多线程操作控件的解决方案
- C# 多线程操作控件
- C# 多线程操作控件
- Winform控件多线程操作控件的解决方案 ( 转 )
- C#多线程解决界面卡死问题的完美解决方案
- C#多线程解决界面卡死问题的完美解决方案
- C#多线程与界面操作
- nutch总体输入输出流程图解析
- Http请求辅助类
- java实现冒泡排序 (2012-05-23 10:18:22)
- 程序员技术练级攻略
- @dblink不共享产生的高version_count消耗内存事件(bug8922013)
- C#多线程操作界面控件的解决方案
- SQL Server优化的方法<一>
- MSSQL内外连接(INNER JOIN)语句详解 (2012-05-28 14:37:25)
- 一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。复杂度如果是O(n2)则不得分。
- Oracle入门:Order By 和Group By 的基本用法
- 类SVN的多平台数据同步系统服务器端设计
- Ext.Net 1.x_Ext.Net.GridPanel之右键菜单
- 数据库索引 ,sql视图的作用(2012-05-29 11:42:17)
- setjmp,longjmp,isgsetjmp,siglongjump